/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 19 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) NumRed [SOUND, 0 ms] (10) HASKELL (11) Narrow [SOUND, 0 ms] (12) AND (13) QDP (14) DependencyGraphProof [EQUIVALENT, 0 ms] (15) AND (16) QDP (17) QDPOrderProof [EQUIVALENT, 43 ms] (18) QDP (19) DependencyGraphProof [EQUIVALENT, 0 ms] (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) YES (23) QDP (24) MRRProof [EQUIVALENT, 0 ms] (25) QDP (26) PisEmptyProof [EQUIVALENT, 0 ms] (27) YES (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) DependencyGraphProof [EQUIVALENT, 0 ms] (32) QDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) QDP (35) QReductionProof [EQUIVALENT, 0 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 0 ms] (38) QDP (39) UsableRulesProof [EQUIVALENT, 0 ms] (40) QDP (41) TransformationProof [EQUIVALENT, 3 ms] (42) QDP (43) UsableRulesProof [EQUIVALENT, 0 ms] (44) QDP (45) QReductionProof [EQUIVALENT, 0 ms] (46) QDP (47) MNOCProof [EQUIVALENT, 0 ms] (48) QDP (49) InductionCalculusProof [EQUIVALENT, 0 ms] (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) DependencyGraphProof [EQUIVALENT, 0 ms] (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 0 ms] (58) QDP (59) TransformationProof [EQUIVALENT, 0 ms] (60) QDP (61) DependencyGraphProof [EQUIVALENT, 0 ms] (62) QDP (63) TransformationProof [EQUIVALENT, 0 ms] (64) QDP (65) DependencyGraphProof [EQUIVALENT, 0 ms] (66) QDP (67) TransformationProof [EQUIVALENT, 0 ms] (68) QDP (69) TransformationProof [EQUIVALENT, 0 ms] (70) QDP (71) DependencyGraphProof [EQUIVALENT, 0 ms] (72) QDP (73) TransformationProof [EQUIVALENT, 0 ms] (74) QDP (75) DependencyGraphProof [EQUIVALENT, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) TransformationProof [EQUIVALENT, 0 ms] (80) QDP (81) DependencyGraphProof [EQUIVALENT, 0 ms] (82) QDP (83) TransformationProof [EQUIVALENT, 0 ms] (84) QDP (85) DependencyGraphProof [EQUIVALENT, 0 ms] (86) QDP (87) TransformationProof [EQUIVALENT, 0 ms] (88) QDP (89) TransformationProof [EQUIVALENT, 0 ms] (90) QDP (91) DependencyGraphProof [EQUIVALENT, 0 ms] (92) QDP (93) TransformationProof [EQUIVALENT, 0 ms] (94) QDP (95) DependencyGraphProof [EQUIVALENT, 0 ms] (96) QDP (97) TransformationProof [EQUIVALENT, 0 ms] (98) QDP (99) TransformationProof [EQUIVALENT, 0 ms] (100) QDP (101) TransformationProof [EQUIVALENT, 0 ms] (102) QDP (103) TransformationProof [EQUIVALENT, 0 ms] (104) QDP (105) TransformationProof [EQUIVALENT, 0 ms] (106) QDP (107) TransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) TransformationProof [EQUIVALENT, 0 ms] (110) QDP (111) DependencyGraphProof [EQUIVALENT, 0 ms] (112) QDP (113) TransformationProof [EQUIVALENT, 0 ms] (114) QDP (115) TransformationProof [EQUIVALENT, 0 ms] (116) QDP (117) TransformationProof [EQUIVALENT, 0 ms] (118) QDP (119) DependencyGraphProof [EQUIVALENT, 0 ms] (120) QDP (121) TransformationProof [EQUIVALENT, 0 ms] (122) QDP (123) TransformationProof [EQUIVALENT, 0 ms] (124) QDP (125) TransformationProof [EQUIVALENT, 0 ms] (126) QDP (127) TransformationProof [EQUIVALENT, 0 ms] (128) QDP (129) TransformationProof [EQUIVALENT, 0 ms] (130) QDP (131) TransformationProof [EQUIVALENT, 0 ms] (132) QDP (133) TransformationProof [EQUIVALENT, 0 ms] (134) QDP (135) DependencyGraphProof [EQUIVALENT, 0 ms] (136) QDP (137) TransformationProof [EQUIVALENT, 0 ms] (138) QDP (139) TransformationProof [EQUIVALENT, 0 ms] (140) QDP (141) TransformationProof [EQUIVALENT, 0 ms] (142) QDP (143) DependencyGraphProof [EQUIVALENT, 0 ms] (144) QDP (145) TransformationProof [EQUIVALENT, 0 ms] (146) QDP (147) TransformationProof [EQUIVALENT, 0 ms] (148) QDP (149) TransformationProof [EQUIVALENT, 0 ms] (150) QDP (151) TransformationProof [EQUIVALENT, 0 ms] (152) QDP (153) TransformationProof [EQUIVALENT, 0 ms] (154) QDP (155) TransformationProof [EQUIVALENT, 0 ms] (156) QDP (157) TransformationProof [EQUIVALENT, 0 ms] (158) QDP (159) DependencyGraphProof [EQUIVALENT, 0 ms] (160) QDP (161) TransformationProof [EQUIVALENT, 0 ms] (162) QDP (163) TransformationProof [EQUIVALENT, 0 ms] (164) QDP (165) TransformationProof [EQUIVALENT, 0 ms] (166) QDP (167) DependencyGraphProof [EQUIVALENT, 0 ms] (168) QDP (169) TransformationProof [EQUIVALENT, 0 ms] (170) QDP (171) TransformationProof [EQUIVALENT, 0 ms] (172) QDP (173) TransformationProof [EQUIVALENT, 0 ms] (174) QDP (175) TransformationProof [EQUIVALENT, 0 ms] (176) QDP (177) TransformationProof [EQUIVALENT, 0 ms] (178) QDP (179) TransformationProof [EQUIVALENT, 0 ms] (180) QDP (181) TransformationProof [EQUIVALENT, 0 ms] (182) QDP (183) TransformationProof [EQUIVALENT, 0 ms] (184) QDP (185) TransformationProof [EQUIVALENT, 0 ms] (186) QDP (187) DependencyGraphProof [EQUIVALENT, 0 ms] (188) QDP (189) TransformationProof [EQUIVALENT, 0 ms] (190) QDP (191) TransformationProof [EQUIVALENT, 0 ms] (192) QDP (193) TransformationProof [EQUIVALENT, 0 ms] (194) QDP (195) TransformationProof [EQUIVALENT, 0 ms] (196) QDP (197) DependencyGraphProof [EQUIVALENT, 0 ms] (198) QDP (199) TransformationProof [EQUIVALENT, 0 ms] (200) QDP (201) TransformationProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) TransformationProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) TransformationProof [EQUIVALENT, 0 ms] (212) QDP (213) TransformationProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) DependencyGraphProof [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) DependencyGraphProof [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, 1 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) DependencyGraphProof [EQUIVALENT, 0 ms] (252) QDP (253) TransformationProof [EQUIVALENT, 0 ms] (254) QDP (255) TransformationProof [EQUIVALENT, 0 ms] (256) QDP (257) TransformationProof [EQUIVALENT, 0 ms] (258) QDP (259) TransformationProof [EQUIVALENT, 0 ms] (260) QDP (261) TransformationProof [EQUIVALENT, 0 ms] (262) QDP (263) TransformationProof [EQUIVALENT, 0 ms] (264) QDP (265) TransformationProof [EQUIVALENT, 0 ms] (266) QDP (267) TransformationProof [EQUIVALENT, 0 ms] (268) QDP (269) TransformationProof [EQUIVALENT, 0 ms] (270) QDP (271) DependencyGraphProof [EQUIVALENT, 0 ms] (272) QDP (273) TransformationProof [EQUIVALENT, 0 ms] (274) QDP (275) TransformationProof [EQUIVALENT, 0 ms] (276) QDP (277) TransformationProof [EQUIVALENT, 0 ms] (278) QDP (279) TransformationProof [EQUIVALENT, 0 ms] (280) QDP (281) DependencyGraphProof [EQUIVALENT, 0 ms] (282) QDP (283) TransformationProof [EQUIVALENT, 0 ms] (284) QDP (285) TransformationProof [EQUIVALENT, 0 ms] (286) QDP (287) TransformationProof [EQUIVALENT, 0 ms] (288) QDP (289) TransformationProof [EQUIVALENT, 0 ms] (290) QDP (291) TransformationProof [EQUIVALENT, 0 ms] (292) QDP (293) TransformationProof [EQUIVALENT, 0 ms] (294) QDP (295) TransformationProof [EQUIVALENT, 0 ms] (296) QDP (297) TransformationProof [EQUIVALENT, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) DependencyGraphProof [EQUIVALENT, 0 ms] (302) QDP (303) TransformationProof [EQUIVALENT, 0 ms] (304) QDP (305) TransformationProof [EQUIVALENT, 0 ms] (306) QDP (307) TransformationProof [EQUIVALENT, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) DependencyGraphProof [EQUIVALENT, 0 ms] (312) QDP (313) TransformationProof [EQUIVALENT, 0 ms] (314) QDP (315) QDPOrderProof [EQUIVALENT, 70 ms] (316) QDP (317) QDPOrderProof [EQUIVALENT, 75 ms] (318) QDP (319) MNOCProof [EQUIVALENT, 0 ms] (320) QDP (321) InductionCalculusProof [EQUIVALENT, 0 ms] (322) QDP (323) QDP (324) MNOCProof [EQUIVALENT, 0 ms] (325) QDP (326) InductionCalculusProof [EQUIVALENT, 0 ms] (327) QDP (328) TransformationProof [EQUIVALENT, 0 ms] (329) QDP (330) TransformationProof [EQUIVALENT, 0 ms] (331) QDP (332) UsableRulesProof [EQUIVALENT, 0 ms] (333) QDP (334) QReductionProof [EQUIVALENT, 0 ms] (335) QDP (336) TransformationProof [EQUIVALENT, 0 ms] (337) QDP (338) UsableRulesProof [EQUIVALENT, 0 ms] (339) QDP (340) QReductionProof [EQUIVALENT, 0 ms] (341) QDP (342) TransformationProof [EQUIVALENT, 0 ms] (343) QDP (344) TransformationProof [EQUIVALENT, 0 ms] (345) QDP (346) DependencyGraphProof [EQUIVALENT, 0 ms] (347) QDP (348) TransformationProof [EQUIVALENT, 0 ms] (349) QDP (350) DependencyGraphProof [EQUIVALENT, 0 ms] (351) QDP (352) TransformationProof [EQUIVALENT, 0 ms] (353) QDP (354) DependencyGraphProof [EQUIVALENT, 0 ms] (355) QDP (356) TransformationProof [EQUIVALENT, 0 ms] (357) QDP (358) DependencyGraphProof [EQUIVALENT, 0 ms] (359) QDP (360) TransformationProof [EQUIVALENT, 0 ms] (361) QDP (362) DependencyGraphProof [EQUIVALENT, 0 ms] (363) AND (364) QDP (365) UsableRulesProof [EQUIVALENT, 0 ms] (366) QDP (367) QReductionProof [EQUIVALENT, 0 ms] (368) QDP (369) TransformationProof [EQUIVALENT, 0 ms] (370) QDP (371) DependencyGraphProof [EQUIVALENT, 0 ms] (372) QDP (373) TransformationProof [EQUIVALENT, 0 ms] (374) QDP (375) DependencyGraphProof [EQUIVALENT, 0 ms] (376) QDP (377) TransformationProof [EQUIVALENT, 0 ms] (378) QDP (379) TransformationProof [EQUIVALENT, 0 ms] (380) QDP (381) DependencyGraphProof [EQUIVALENT, 0 ms] (382) AND (383) QDP (384) UsableRulesProof [EQUIVALENT, 0 ms] (385) QDP (386) QReductionProof [EQUIVALENT, 0 ms] (387) QDP (388) TransformationProof [EQUIVALENT, 1 ms] (389) QDP (390) TransformationProof [EQUIVALENT, 0 ms] (391) QDP (392) TransformationProof [EQUIVALENT, 0 ms] (393) QDP (394) TransformationProof [EQUIVALENT, 0 ms] (395) QDP (396) TransformationProof [EQUIVALENT, 0 ms] (397) QDP (398) DependencyGraphProof [EQUIVALENT, 0 ms] (399) QDP (400) TransformationProof [EQUIVALENT, 0 ms] (401) QDP (402) DependencyGraphProof [EQUIVALENT, 0 ms] (403) QDP (404) TransformationProof [EQUIVALENT, 0 ms] (405) QDP (406) QDPSizeChangeProof [EQUIVALENT, 15 ms] (407) YES (408) QDP (409) UsableRulesProof [EQUIVALENT, 0 ms] (410) QDP (411) QReductionProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (436) AND (437) QDP (438) TransformationProof [EQUIVALENT, 0 ms] (439) QDP (440) TransformationProof [EQUIVALENT, 0 ms] (441) QDP (442) TransformationProof [EQUIVALENT, 0 ms] (443) QDP (444) QReductionProof [EQUIVALENT, 0 ms] (445) QDP (446) InductionCalculusProof [EQUIVALENT, 0 ms] (447) QDP (448) QDP (449) QReductionProof [EQUIVALENT, 0 ms] (450) QDP (451) InductionCalculusProof [EQUIVALENT, 0 ms] (452) QDP (453) QDP (454) UsableRulesProof [EQUIVALENT, 0 ms] (455) QDP (456) QReductionProof [EQUIVALENT, 0 ms] (457) QDP (458) TransformationProof [EQUIVALENT, 0 ms] (459) QDP (460) DependencyGraphProof [EQUIVALENT, 0 ms] (461) QDP (462) TransformationProof [EQUIVALENT, 0 ms] (463) QDP (464) DependencyGraphProof [EQUIVALENT, 0 ms] (465) QDP (466) TransformationProof [EQUIVALENT, 0 ms] (467) QDP (468) TransformationProof [EQUIVALENT, 0 ms] (469) QDP (470) DependencyGraphProof [EQUIVALENT, 0 ms] (471) AND (472) QDP (473) UsableRulesProof [EQUIVALENT, 0 ms] (474) QDP (475) QReductionProof [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) DependencyGraphProof [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) QDPSizeChangeProof [EQUIVALENT, 0 ms] (496) YES (497) QDP (498) UsableRulesProof [EQUIVALENT, 0 ms] (499) QDP (500) QReductionProof [EQUIVALENT, 0 ms] (501) QDP (502) TransformationProof [EQUIVALENT, 0 ms] (503) QDP (504) TransformationProof [EQUIVALENT, 0 ms] (505) QDP (506) TransformationProof [EQUIVALENT, 0 ms] (507) QDP (508) TransformationProof [EQUIVALENT, 0 ms] (509) QDP (510) TransformationProof [EQUIVALENT, 0 ms] (511) QDP (512) TransformationProof [EQUIVALENT, 0 ms] (513) QDP (514) TransformationProof [EQUIVALENT, 0 ms] (515) QDP (516) TransformationProof [EQUIVALENT, 0 ms] (517) QDP (518) TransformationProof [EQUIVALENT, 0 ms] (519) QDP (520) DependencyGraphProof [EQUIVALENT, 0 ms] (521) QDP (522) TransformationProof [EQUIVALENT, 0 ms] (523) QDP (524) DependencyGraphProof [EQUIVALENT, 0 ms] (525) AND (526) QDP (527) TransformationProof [EQUIVALENT, 0 ms] (528) QDP (529) TransformationProof [EQUIVALENT, 0 ms] (530) QDP (531) TransformationProof [EQUIVALENT, 0 ms] (532) QDP (533) QReductionProof [EQUIVALENT, 0 ms] (534) QDP (535) InductionCalculusProof [EQUIVALENT, 0 ms] (536) QDP (537) QDP (538) QReductionProof [EQUIVALENT, 0 ms] (539) QDP (540) InductionCalculusProof [EQUIVALENT, 0 ms] (541) QDP (542) QDP (543) UsableRulesProof [EQUIVALENT, 0 ms] (544) QDP (545) QReductionProof [EQUIVALENT, 0 ms] (546) QDP (547) TransformationProof [EQUIVALENT, 0 ms] (548) QDP (549) DependencyGraphProof [EQUIVALENT, 0 ms] (550) QDP (551) TransformationProof [EQUIVALENT, 0 ms] (552) QDP (553) DependencyGraphProof [EQUIVALENT, 0 ms] (554) QDP (555) TransformationProof [EQUIVALENT, 0 ms] (556) QDP (557) TransformationProof [EQUIVALENT, 0 ms] (558) QDP (559) DependencyGraphProof [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) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (592) QDP (593) TransformationProof [EQUIVALENT, 0 ms] (594) QDP (595) TransformationProof [EQUIVALENT, 0 ms] (596) QDP (597) DependencyGraphProof [EQUIVALENT, 0 ms] (598) AND (599) QDP (600) UsableRulesProof [EQUIVALENT, 0 ms] (601) QDP (602) QReductionProof [EQUIVALENT, 0 ms] (603) QDP (604) TransformationProof [EQUIVALENT, 0 ms] (605) QDP (606) TransformationProof [EQUIVALENT, 0 ms] (607) QDP (608) TransformationProof [EQUIVALENT, 0 ms] (609) QDP (610) DependencyGraphProof [EQUIVALENT, 0 ms] (611) QDP (612) TransformationProof [EQUIVALENT, 0 ms] (613) QDP (614) DependencyGraphProof [EQUIVALENT, 0 ms] (615) QDP (616) TransformationProof [EQUIVALENT, 0 ms] (617) QDP (618) QDPSizeChangeProof [EQUIVALENT, 0 ms] (619) YES (620) QDP (621) UsableRulesProof [EQUIVALENT, 0 ms] (622) QDP (623) QReductionProof [EQUIVALENT, 0 ms] (624) QDP (625) TransformationProof [EQUIVALENT, 0 ms] (626) QDP (627) TransformationProof [EQUIVALENT, 0 ms] (628) QDP (629) TransformationProof [EQUIVALENT, 0 ms] (630) QDP (631) TransformationProof [EQUIVALENT, 0 ms] (632) QDP (633) TransformationProof [EQUIVALENT, 0 ms] (634) QDP (635) DependencyGraphProof [EQUIVALENT, 0 ms] (636) QDP (637) TransformationProof [EQUIVALENT, 0 ms] (638) QDP (639) DependencyGraphProof [EQUIVALENT, 0 ms] (640) QDP (641) TransformationProof [EQUIVALENT, 0 ms] (642) QDP (643) QDPSizeChangeProof [EQUIVALENT, 0 ms] (644) YES (645) QDP (646) UsableRulesProof [EQUIVALENT, 0 ms] (647) QDP (648) QReductionProof [EQUIVALENT, 0 ms] (649) QDP (650) TransformationProof [EQUIVALENT, 0 ms] (651) QDP (652) TransformationProof [EQUIVALENT, 0 ms] (653) QDP (654) TransformationProof [EQUIVALENT, 0 ms] (655) QDP (656) TransformationProof [EQUIVALENT, 0 ms] (657) QDP (658) TransformationProof [EQUIVALENT, 0 ms] (659) QDP (660) TransformationProof [EQUIVALENT, 0 ms] (661) QDP (662) TransformationProof [EQUIVALENT, 0 ms] (663) QDP (664) TransformationProof [EQUIVALENT, 0 ms] (665) QDP (666) TransformationProof [EQUIVALENT, 0 ms] (667) QDP (668) DependencyGraphProof [EQUIVALENT, 0 ms] (669) QDP (670) TransformationProof [EQUIVALENT, 0 ms] (671) QDP (672) DependencyGraphProof [EQUIVALENT, 0 ms] (673) QDP (674) TransformationProof [EQUIVALENT, 0 ms] (675) QDP (676) TransformationProof [EQUIVALENT, 0 ms] (677) QDP (678) TransformationProof [EQUIVALENT, 0 ms] (679) QDP (680) TransformationProof [EQUIVALENT, 0 ms] (681) QDP (682) DependencyGraphProof [EQUIVALENT, 0 ms] (683) AND (684) QDP (685) UsableRulesProof [EQUIVALENT, 0 ms] (686) QDP (687) TransformationProof [EQUIVALENT, 0 ms] (688) QDP (689) TransformationProof [EQUIVALENT, 0 ms] (690) QDP (691) TransformationProof [EQUIVALENT, 0 ms] (692) QDP (693) InductionCalculusProof [EQUIVALENT, 0 ms] (694) QDP (695) QDP (696) UsableRulesProof [EQUIVALENT, 0 ms] (697) QDP (698) TransformationProof [EQUIVALENT, 0 ms] (699) QDP (700) UsableRulesProof [EQUIVALENT, 0 ms] (701) QDP (702) InductionCalculusProof [EQUIVALENT, 0 ms] (703) QDP (704) QDP (705) InductionCalculusProof [EQUIVALENT, 0 ms] (706) QDP (707) QDP (708) DependencyGraphProof [EQUIVALENT, 0 ms] (709) AND (710) QDP (711) MRRProof [EQUIVALENT, 0 ms] (712) QDP (713) PisEmptyProof [EQUIVALENT, 0 ms] (714) YES (715) QDP (716) QDPSizeChangeProof [EQUIVALENT, 0 ms] (717) YES (718) QDP (719) QDPSizeChangeProof [EQUIVALENT, 0 ms] (720) YES (721) QDP (722) TransformationProof [EQUIVALENT, 75 ms] (723) QDP (724) TransformationProof [EQUIVALENT, 0 ms] (725) QDP (726) TransformationProof [EQUIVALENT, 0 ms] (727) QDP (728) TransformationProof [EQUIVALENT, 0 ms] (729) QDP (730) DependencyGraphProof [EQUIVALENT, 0 ms] (731) AND (732) QDP (733) UsableRulesProof [EQUIVALENT, 0 ms] (734) QDP (735) QReductionProof [EQUIVALENT, 0 ms] (736) QDP (737) MNOCProof [EQUIVALENT, 0 ms] (738) QDP (739) NonTerminationLoopProof [COMPLETE, 0 ms] (740) NO (741) QDP (742) UsableRulesProof [EQUIVALENT, 0 ms] (743) QDP (744) QReductionProof [EQUIVALENT, 0 ms] (745) QDP (746) TransformationProof [EQUIVALENT, 49 ms] (747) QDP (748) TransformationProof [EQUIVALENT, 0 ms] (749) QDP (750) UsableRulesProof [EQUIVALENT, 0 ms] (751) QDP (752) QReductionProof [EQUIVALENT, 0 ms] (753) QDP (754) TransformationProof [EQUIVALENT, 35 ms] (755) QDP (756) UsableRulesProof [EQUIVALENT, 0 ms] (757) QDP (758) QReductionProof [EQUIVALENT, 0 ms] (759) QDP (760) TransformationProof [EQUIVALENT, 34 ms] (761) QDP (762) TransformationProof [EQUIVALENT, 0 ms] (763) QDP (764) DependencyGraphProof [EQUIVALENT, 0 ms] (765) AND (766) QDP (767) UsableRulesProof [EQUIVALENT, 0 ms] (768) QDP (769) QReductionProof [EQUIVALENT, 0 ms] (770) QDP (771) MNOCProof [EQUIVALENT, 0 ms] (772) QDP (773) NonTerminationLoopProof [COMPLETE, 0 ms] (774) NO (775) QDP (776) UsableRulesProof [EQUIVALENT, 0 ms] (777) QDP (778) QReductionProof [EQUIVALENT, 0 ms] (779) QDP (780) TransformationProof [EQUIVALENT, 0 ms] (781) QDP (782) TransformationProof [EQUIVALENT, 0 ms] (783) QDP (784) TransformationProof [EQUIVALENT, 0 ms] (785) QDP (786) TransformationProof [EQUIVALENT, 0 ms] (787) QDP (788) TransformationProof [EQUIVALENT, 0 ms] (789) QDP (790) TransformationProof [EQUIVALENT, 0 ms] (791) QDP (792) UsableRulesProof [EQUIVALENT, 0 ms] (793) QDP (794) TransformationProof [EQUIVALENT, 23 ms] (795) QDP (796) UsableRulesProof [EQUIVALENT, 0 ms] (797) QDP (798) QReductionProof [EQUIVALENT, 0 ms] (799) QDP (800) TransformationProof [EQUIVALENT, 30 ms] (801) QDP (802) TransformationProof [EQUIVALENT, 0 ms] (803) QDP (804) TransformationProof [EQUIVALENT, 0 ms] (805) QDP (806) TransformationProof [EQUIVALENT, 0 ms] (807) QDP (808) TransformationProof [EQUIVALENT, 0 ms] (809) QDP (810) DependencyGraphProof [EQUIVALENT, 0 ms] (811) QDP (812) TransformationProof [EQUIVALENT, 0 ms] (813) QDP (814) DependencyGraphProof [EQUIVALENT, 0 ms] (815) QDP (816) TransformationProof [EQUIVALENT, 0 ms] (817) QDP (818) TransformationProof [EQUIVALENT, 0 ms] (819) QDP (820) TransformationProof [EQUIVALENT, 0 ms] (821) QDP (822) UsableRulesProof [EQUIVALENT, 0 ms] (823) QDP (824) TransformationProof [EQUIVALENT, 38 ms] (825) QDP (826) UsableRulesProof [EQUIVALENT, 0 ms] (827) QDP (828) QReductionProof [EQUIVALENT, 0 ms] (829) QDP (830) TransformationProof [EQUIVALENT, 49 ms] (831) QDP (832) UsableRulesProof [EQUIVALENT, 0 ms] (833) QDP (834) QReductionProof [EQUIVALENT, 0 ms] (835) QDP (836) QDPOrderProof [EQUIVALENT, 160 ms] (837) QDP (838) DependencyGraphProof [EQUIVALENT, 0 ms] (839) AND (840) QDP (841) MNOCProof [EQUIVALENT, 0 ms] (842) QDP (843) InductionCalculusProof [EQUIVALENT, 3 ms] (844) QDP (845) QDPPairToRuleProof [EQUIVALENT, 0 ms] (846) AND (847) QDP (848) MNOCProof [EQUIVALENT, 5 ms] (849) QDP (850) InductionCalculusProof [EQUIVALENT, 0 ms] (851) QDP (852) QDP (853) QDPSizeChangeProof [EQUIVALENT, 0 ms] (854) YES (855) QDP (856) MNOCProof [EQUIVALENT, 0 ms] (857) QDP (858) InductionCalculusProof [EQUIVALENT, 0 ms] (859) QDP (860) QDPPairToRuleProof [EQUIVALENT, 0 ms] (861) AND (862) QDP (863) MNOCProof [EQUIVALENT, 6 ms] (864) QDP (865) InductionCalculusProof [EQUIVALENT, 0 ms] (866) QDP (867) QDP (868) QDPSizeChangeProof [EQUIVALENT, 0 ms] (869) YES (870) QDP (871) QDPSizeChangeProof [EQUIVALENT, 0 ms] (872) YES (873) QDP (874) QDPSizeChangeProof [EQUIVALENT, 0 ms] (875) YES (876) QDP (877) QDPSizeChangeProof [EQUIVALENT, 0 ms] (878) YES (879) QDP (880) QDPSizeChangeProof [EQUIVALENT, 0 ms] (881) YES (882) Narrow [COMPLETE, 0 ms] (883) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal0 x True = `negate` x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "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 yw = gcd'2 x yw; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x yw = x; gcd'1 yx yy yz = gcd'0 yy yz; " "gcd'2 x yw = gcd'1 (yw == 0) x yw; gcd'2 zu zv = gcd'0 zu zv; " 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 zw zx = gcd3 zw zx; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x yw = gcd'2 x yw; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x yw = x; gcd'1 yx yy yz = gcd'0 yy yz; ; gcd'2 x yw = gcd'1 (yw == 0) x yw; gcd'2 zu zv = gcd'0 zu zv; } ; " "gcd1 True zw zx = error []; gcd1 zy zz vuu = gcd0 zz vuu; " "gcd2 True zw zx = gcd1 (zx == 0) zw zx; gcd2 vuv vuw vux = gcd0 vuw vux; " "gcd3 zw zx = gcd2 (zw == 0) zw zx; gcd3 vuy vuz = gcd0 vuy vuz; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "g x n|even ng (x * x) (n `quot` 2)|otherwisef x (n - 1) (x * y); " is transformed to "g x n = g2 x n; " "g0 x n True = f x (n - 1) (x * y); " "g1 x n True = g (x * x) (n `quot` 2); g1 x n False = g0 x n otherwise; " "g2 x n = g1 x n (even n); " The following Function with conditions "f xv 0 y = y; f x n y = g x n where { g x n|even ng (x * x) (n `quot` 2)|otherwisef x (n - 1) (x * y); } ; " is transformed to "f xv vvu y = f4 xv vvu y; f x n y = f0 x n y; " "f0 x n y = g x n where { g x n = g2 x n; ; g0 x n True = f x (n - 1) (x * y); ; g1 x n True = g (x * x) (n `quot` 2); g1 x n False = g0 x n otherwise; ; g2 x n = g1 x n (even n); } ; " "f3 True xv vvu y = y; f3 vvv vvw vvx vvy = f0 vvw vvx vvy; " "f4 xv vvu y = f3 (vvu == 0) xv vvu y; f4 vvz vwu vwv = f0 vvz vwu vwv; " The following Function with conditions "^ x 0 = 1; ^ x n|n > 0f x (n - 1) x where { f xv 0 y = y; f x n y = g x n where { g x n|even ng (x * x) (n `quot` 2)|otherwisef x (n - 1) (x * y); } ; } ; ^ xw xx = error []; " is transformed to "^ x vwy = pr4 x vwy; ^ x n = pr2 x n; ^ xw xx = pr0 xw xx; " "pr0 xw xx = error []; " "pr2 x n = pr1 x n (n > 0) where { f xv vvu y = f4 xv vvu y; f x n y = f0 x n y; ; f0 x n y = g x n where { g x n = g2 x n; ; g0 x n True = f x (n - 1) (x * y); ; g1 x n True = g (x * x) (n `quot` 2); g1 x n False = g0 x n otherwise; ; g2 x n = g1 x n (even n); } ; ; f3 True xv vvu y = y; f3 vvv vvw vvx vvy = f0 vvw vvx vvy; ; f4 xv vvu y = f3 (vvu == 0) xv vvu y; f4 vvz vwu vwv = f0 vvz vwu vwv; ; pr1 x n True = f x (n - 1) x; pr1 x n False = pr0 x n; } ; pr2 vww vwx = pr0 vww vwx; " "pr3 True x vwy = 1; pr3 vwz vxu vxv = pr2 vxu vxv; " "pr4 x vwy = pr3 (vwy == 0) x vwy; pr4 vxw vxx = pr2 vxw vxx; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x yw = gcd'2 x yw; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x yw = x; gcd'1 yx yy yz = gcd'0 yy yz; ; gcd'2 x yw = gcd'1 (yw == 0) x yw; gcd'2 zu zv = gcd'0 zu zv; } " are unpacked to the following functions on top level "gcd0Gcd'1 True x yw = x; gcd0Gcd'1 yx yy yz = gcd0Gcd'0 yy yz; " "gcd0Gcd' x yw = gcd0Gcd'2 x yw; gcd0Gcd' x y = gcd0Gcd'0 x y; " "gcd0Gcd'2 x yw = gcd0Gcd'1 (yw == 0) x yw; gcd0Gcd'2 zu zv = gcd0Gcd'0 zu zv; " "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 "reduce2D vxy vxz = gcd vxy vxz; " "reduce2Reduce0 vxy vxz x y True = x `quot` reduce2D vxy vxz :% (y `quot` reduce2D vxy vxz); " "reduce2Reduce1 vxy vxz x y True = error []; reduce2Reduce1 vxy vxz x y False = reduce2Reduce0 vxy vxz x y otherwise; " The bindings of the following Let/Where expression "pr1 x n (n > 0) where { f xv vvu y = f4 xv vvu y; f x n y = f0 x n y; ; f0 x n y = g x n where { g x n = g2 x n; ; g0 x n True = f x (n - 1) (x * y); ; g1 x n True = g (x * x) (n `quot` 2); g1 x n False = g0 x n otherwise; ; g2 x n = g1 x n (even n); } ; ; f3 True xv vvu y = y; f3 vvv vvw vvx vvy = f0 vvw vvx vvy; ; f4 xv vvu y = f3 (vvu == 0) xv vvu y; f4 vvz vwu vwv = f0 vvz vwu vwv; ; pr1 x n True = f x (n - 1) x; pr1 x n False = pr0 x n; } " are unpacked to the following functions on top level "pr2F3 True xv vvu y = y; pr2F3 vvv vvw vvx vvy = pr2F0 vvw vvx vvy; " "pr2F4 xv vvu y = pr2F3 (vvu == 0) xv vvu y; pr2F4 vvz vwu vwv = pr2F0 vvz vwu vwv; " "pr2F0 x n y = pr2F0G y x n; " "pr2Pr1 x n True = pr2F x (n - 1) x; pr2Pr1 x n False = pr0 x n; " "pr2F xv vvu y = pr2F4 xv vvu y; pr2F x n y = pr2F0 x n y; " The bindings of the following Let/Where expression "g x n where { g x n = g2 x n; ; g0 x n True = f x (n - 1) (x * y); ; g1 x n True = g (x * x) (n `quot` 2); g1 x n False = g0 x n otherwise; ; g2 x n = g1 x n (even n); } " are unpacked to the following functions on top level "pr2F0G2 vyu x n = pr2F0G1 vyu x n (even n); " "pr2F0G0 vyu x n True = pr2F x (n - 1) (x * vyu); " "pr2F0G1 vyu x n True = pr2F0G vyu (x * x) (n `quot` 2); pr2F0G1 vyu x n False = pr2F0G0 vyu x n otherwise; " "pr2F0G vyu x n = pr2F0G2 vyu x n; " ---------------------------------------- (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="(^) vyv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(^) vyv3 vyv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="pr4 vyv3 vyv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="pr3 (vyv4 == fromInt (Pos Zero)) vyv3 vyv4",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="pr3 (primEqInt vyv4 (fromInt (Pos Zero))) vyv3 vyv4",fontsize=16,color="burlywood",shape="box"];11626[label="vyv4/Pos vyv40",fontsize=10,color="white",style="solid",shape="box"];7 -> 11626[label="",style="solid", color="burlywood", weight=9]; 11626 -> 8[label="",style="solid", color="burlywood", weight=3]; 11627[label="vyv4/Neg vyv40",fontsize=10,color="white",style="solid",shape="box"];7 -> 11627[label="",style="solid", color="burlywood", weight=9]; 11627 -> 9[label="",style="solid", color="burlywood", weight=3]; 8[label="pr3 (primEqInt (Pos vyv40) (fromInt (Pos Zero))) vyv3 (Pos vyv40)",fontsize=16,color="burlywood",shape="box"];11628[label="vyv40/Succ vyv400",fontsize=10,color="white",style="solid",shape="box"];8 -> 11628[label="",style="solid", color="burlywood", weight=9]; 11628 -> 10[label="",style="solid", color="burlywood", weight=3]; 11629[label="vyv40/Zero",fontsize=10,color="white",style="solid",shape="box"];8 -> 11629[label="",style="solid", color="burlywood", weight=9]; 11629 -> 11[label="",style="solid", color="burlywood", weight=3]; 9[label="pr3 (primEqInt (Neg vyv40) (fromInt (Pos Zero))) vyv3 (Neg vyv40)",fontsize=16,color="burlywood",shape="box"];11630[label="vyv40/Succ vyv400",fontsize=10,color="white",style="solid",shape="box"];9 -> 11630[label="",style="solid", color="burlywood", weight=9]; 11630 -> 12[label="",style="solid", color="burlywood", weight=3]; 11631[label="vyv40/Zero",fontsize=10,color="white",style="solid",shape="box"];9 -> 11631[label="",style="solid", color="burlywood", weight=9]; 11631 -> 13[label="",style="solid", color="burlywood", weight=3]; 10[label="pr3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];10 -> 14[label="",style="solid", color="black", weight=3]; 11[label="pr3 (primEqInt (Pos Zero) (fromInt (Pos Zero))) vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];11 -> 15[label="",style="solid", color="black", weight=3]; 12[label="pr3 (primEqInt (Neg (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];12 -> 16[label="",style="solid", color="black", weight=3]; 13[label="pr3 (primEqInt (Neg Zero) (fromInt (Pos Zero))) vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];13 -> 17[label="",style="solid", color="black", weight=3]; 14[label="pr3 (primEqInt (Pos (Succ vyv400)) (Pos Zero)) vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];14 -> 18[label="",style="solid", color="black", weight=3]; 15[label="pr3 (primEqInt (Pos Zero) (Pos Zero)) vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];15 -> 19[label="",style="solid", color="black", weight=3]; 16[label="pr3 (primEqInt (Neg (Succ vyv400)) (Pos Zero)) vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];16 -> 20[label="",style="solid", color="black", weight=3]; 17[label="pr3 (primEqInt (Neg Zero) (Pos Zero)) vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];17 -> 21[label="",style="solid", color="black", weight=3]; 18[label="pr3 False vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];18 -> 22[label="",style="solid", color="black", weight=3]; 19[label="pr3 True vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];19 -> 23[label="",style="solid", color="black", weight=3]; 20[label="pr3 False vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];20 -> 24[label="",style="solid", color="black", weight=3]; 21[label="pr3 True vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 22[label="pr2 vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 23[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11632[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];23 -> 11632[label="",style="solid", color="blue", weight=9]; 11632 -> 27[label="",style="solid", color="blue", weight=3]; 11633[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];23 -> 11633[label="",style="solid", color="blue", weight=9]; 11633 -> 28[label="",style="solid", color="blue", weight=3]; 11634[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];23 -> 11634[label="",style="solid", color="blue", weight=9]; 11634 -> 29[label="",style="solid", color="blue", weight=3]; 11635[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];23 -> 11635[label="",style="solid", color="blue", weight=9]; 11635 -> 30[label="",style="solid", color="blue", weight=3]; 11636[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];23 -> 11636[label="",style="solid", color="blue", weight=9]; 11636 -> 31[label="",style="solid", color="blue", weight=3]; 24[label="pr2 vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11637[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];25 -> 11637[label="",style="solid", color="blue", weight=9]; 11637 -> 33[label="",style="solid", color="blue", weight=3]; 11638[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];25 -> 11638[label="",style="solid", color="blue", weight=9]; 11638 -> 34[label="",style="solid", color="blue", weight=3]; 11639[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];25 -> 11639[label="",style="solid", color="blue", weight=9]; 11639 -> 35[label="",style="solid", color="blue", weight=3]; 11640[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];25 -> 11640[label="",style="solid", color="blue", weight=9]; 11640 -> 36[label="",style="solid", color="blue", weight=3]; 11641[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];25 -> 11641[label="",style="solid", color="blue", weight=9]; 11641 -> 37[label="",style="solid", color="blue", weight=3]; 26[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (Pos (Succ vyv400) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];26 -> 38[label="",style="solid", color="black", weight=3]; 27[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];27 -> 39[label="",style="solid", color="black", weight=3]; 28[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];28 -> 40[label="",style="solid", color="black", weight=3]; 29[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];29 -> 41[label="",style="solid", color="black", weight=3]; 30[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];30 -> 42[label="",style="solid", color="black", weight=3]; 31[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];31 -> 43[label="",style="solid", color="black", weight=3]; 32[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (Neg (Succ vyv400) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];32 -> 44[label="",style="solid", color="black", weight=3]; 33 -> 27[label="",style="dashed", color="red", weight=0]; 33[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];34 -> 28[label="",style="dashed", color="red", weight=0]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];35 -> 29[label="",style="dashed", color="red", weight=0]; 35[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];36 -> 30[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];37 -> 31[label="",style="dashed", color="red", weight=0]; 37[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];38[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (compare (Pos (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];38 -> 45[label="",style="solid", color="black", weight=3]; 39[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];39 -> 46[label="",style="solid", color="black", weight=3]; 40[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];40 -> 47[label="",style="solid", color="black", weight=3]; 41[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];42[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];43[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];43 -> 48[label="",style="solid", color="black", weight=3]; 44[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (compare (Neg (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];44 -> 49[label="",style="solid", color="black", weight=3]; 45[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpInt (Pos (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];45 -> 50[label="",style="solid", color="black", weight=3]; 46[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];46 -> 51[label="",style="dashed", color="green", weight=3]; 46 -> 52[label="",style="dashed", color="green", weight=3]; 47[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];48[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];49[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (primCmpInt (Neg (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];49 -> 53[label="",style="solid", color="black", weight=3]; 50[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpInt (Pos (Succ vyv400)) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3]; 51[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11642[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];51 -> 11642[label="",style="solid", color="blue", weight=9]; 11642 -> 55[label="",style="solid", color="blue", weight=3]; 11643[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];51 -> 11643[label="",style="solid", color="blue", weight=9]; 11643 -> 56[label="",style="solid", color="blue", weight=3]; 52[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11644[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];52 -> 11644[label="",style="solid", color="blue", weight=9]; 11644 -> 57[label="",style="solid", color="blue", weight=3]; 11645[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];52 -> 11645[label="",style="solid", color="blue", weight=9]; 11645 -> 58[label="",style="solid", color="blue", weight=3]; 53[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (primCmpInt (Neg (Succ vyv400)) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];53 -> 59[label="",style="solid", color="black", weight=3]; 54[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpNat (Succ vyv400) Zero == GT)",fontsize=16,color="black",shape="box"];54 -> 60[label="",style="solid", color="black", weight=3]; 55 -> 29[label="",style="dashed", color="red", weight=0]; 55[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];56 -> 30[label="",style="dashed", color="red", weight=0]; 56[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];57 -> 29[label="",style="dashed", color="red", weight=0]; 57[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];58 -> 30[label="",style="dashed", color="red", weight=0]; 58[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];59[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (LT == GT)",fontsize=16,color="black",shape="box"];59 -> 61[label="",style="solid", color="black", weight=3]; 60[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (GT == GT)",fontsize=16,color="black",shape="box"];60 -> 62[label="",style="solid", color="black", weight=3]; 61[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) False",fontsize=16,color="black",shape="box"];61 -> 63[label="",style="solid", color="black", weight=3]; 62[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) True",fontsize=16,color="black",shape="box"];62 -> 64[label="",style="solid", color="black", weight=3]; 63[label="pr0 vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];63 -> 65[label="",style="solid", color="black", weight=3]; 64 -> 66[label="",style="dashed", color="red", weight=0]; 64[label="pr2F vyv3 (Pos (Succ vyv400) - fromInt (Pos (Succ Zero))) vyv3",fontsize=16,color="magenta"];64 -> 67[label="",style="dashed", color="magenta", weight=3]; 65[label="error []",fontsize=16,color="black",shape="triangle"];65 -> 68[label="",style="solid", color="black", weight=3]; 67 -> 29[label="",style="dashed", color="red", weight=0]; 67[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];66[label="pr2F vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="triangle"];66 -> 69[label="",style="solid", color="black", weight=3]; 68[label="error []",fontsize=16,color="red",shape="box"];69[label="pr2F4 vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];69 -> 70[label="",style="solid", color="black", weight=3]; 70[label="pr2F3 (Pos (Succ vyv400) - vyv5 == fromInt (Pos Zero)) vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];70 -> 71[label="",style="solid", color="black", weight=3]; 71[label="pr2F3 (primEqInt (Pos (Succ vyv400) - vyv5) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];71 -> 72[label="",style="solid", color="black", weight=3]; 72[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) vyv5) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) vyv5) vyv3",fontsize=16,color="burlywood",shape="box"];11646[label="vyv5/Pos vyv50",fontsize=10,color="white",style="solid",shape="box"];72 -> 11646[label="",style="solid", color="burlywood", weight=9]; 11646 -> 73[label="",style="solid", color="burlywood", weight=3]; 11647[label="vyv5/Neg vyv50",fontsize=10,color="white",style="solid",shape="box"];72 -> 11647[label="",style="solid", color="burlywood", weight=9]; 11647 -> 74[label="",style="solid", color="burlywood", weight=3]; 73[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) (Pos vyv50)) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) (Pos vyv50)) vyv3",fontsize=16,color="black",shape="box"];73 -> 75[label="",style="solid", color="black", weight=3]; 74[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) (Neg vyv50)) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) (Neg vyv50)) vyv3",fontsize=16,color="black",shape="box"];74 -> 76[label="",style="solid", color="black", weight=3]; 75[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) vyv50) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) vyv50) vyv3",fontsize=16,color="burlywood",shape="box"];11648[label="vyv50/Succ vyv500",fontsize=10,color="white",style="solid",shape="box"];75 -> 11648[label="",style="solid", color="burlywood", weight=9]; 11648 -> 77[label="",style="solid", color="burlywood", weight=3]; 11649[label="vyv50/Zero",fontsize=10,color="white",style="solid",shape="box"];75 -> 11649[label="",style="solid", color="burlywood", weight=9]; 11649 -> 78[label="",style="solid", color="burlywood", weight=3]; 76[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) vyv50)) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) vyv50)) vyv3",fontsize=16,color="burlywood",shape="box"];11650[label="vyv50/Succ vyv500",fontsize=10,color="white",style="solid",shape="box"];76 -> 11650[label="",style="solid", color="burlywood", weight=9]; 11650 -> 79[label="",style="solid", color="burlywood", weight=3]; 11651[label="vyv50/Zero",fontsize=10,color="white",style="solid",shape="box"];76 -> 11651[label="",style="solid", color="burlywood", weight=9]; 11651 -> 80[label="",style="solid", color="burlywood", weight=3]; 77[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) (Succ vyv500)) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) (Succ vyv500)) vyv3",fontsize=16,color="black",shape="box"];77 -> 81[label="",style="solid", color="black", weight=3]; 78[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) Zero) vyv3",fontsize=16,color="black",shape="box"];78 -> 82[label="",style="solid", color="black", weight=3]; 79[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) (Succ vyv500))) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) (Succ vyv500))) vyv3",fontsize=16,color="black",shape="box"];79 -> 83[label="",style="solid", color="black", weight=3]; 80[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) Zero)) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) Zero)) vyv3",fontsize=16,color="black",shape="box"];80 -> 84[label="",style="solid", color="black", weight=3]; 81[label="pr2F3 (primEqInt (primMinusNat vyv400 vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat vyv400 vyv500) vyv3",fontsize=16,color="burlywood",shape="triangle"];11652[label="vyv400/Succ vyv4000",fontsize=10,color="white",style="solid",shape="box"];81 -> 11652[label="",style="solid", color="burlywood", weight=9]; 11652 -> 85[label="",style="solid", color="burlywood", weight=3]; 11653[label="vyv400/Zero",fontsize=10,color="white",style="solid",shape="box"];81 -> 11653[label="",style="solid", color="burlywood", weight=9]; 11653 -> 86[label="",style="solid", color="burlywood", weight=3]; 82[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="triangle"];82 -> 87[label="",style="solid", color="black", weight=3]; 83 -> 82[label="",style="dashed", color="red", weight=0]; 83[label="pr2F3 (primEqInt (Pos (Succ (Succ (primPlusNat vyv400 vyv500)))) (fromInt (Pos Zero))) vyv3 (Pos (Succ (Succ (primPlusNat vyv400 vyv500)))) vyv3",fontsize=16,color="magenta"];83 -> 88[label="",style="dashed", color="magenta", weight=3]; 84 -> 82[label="",style="dashed", color="red", weight=0]; 84[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="magenta"];85[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) vyv500) vyv3",fontsize=16,color="burlywood",shape="box"];11654[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];85 -> 11654[label="",style="solid", color="burlywood", weight=9]; 11654 -> 89[label="",style="solid", color="burlywood", weight=3]; 11655[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];85 -> 11655[label="",style="solid", color="burlywood", weight=9]; 11655 -> 90[label="",style="solid", color="burlywood", weight=3]; 86[label="pr2F3 (primEqInt (primMinusNat Zero vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero vyv500) vyv3",fontsize=16,color="burlywood",shape="box"];11656[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];86 -> 11656[label="",style="solid", color="burlywood", weight=9]; 11656 -> 91[label="",style="solid", color="burlywood", weight=3]; 11657[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 11657[label="",style="solid", color="burlywood", weight=9]; 11657 -> 92[label="",style="solid", color="burlywood", weight=3]; 87[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (Pos Zero)) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];87 -> 93[label="",style="solid", color="black", weight=3]; 88[label="Succ (primPlusNat vyv400 vyv500)",fontsize=16,color="green",shape="box"];88 -> 94[label="",style="dashed", color="green", weight=3]; 89[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];89 -> 95[label="",style="solid", color="black", weight=3]; 90[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) Zero) vyv3",fontsize=16,color="black",shape="box"];90 -> 96[label="",style="solid", color="black", weight=3]; 91[label="pr2F3 (primEqInt (primMinusNat Zero (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];91 -> 97[label="",style="solid", color="black", weight=3]; 92[label="pr2F3 (primEqInt (primMinusNat Zero Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero Zero) vyv3",fontsize=16,color="black",shape="box"];92 -> 98[label="",style="solid", color="black", weight=3]; 93[label="pr2F3 False vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];93 -> 99[label="",style="solid", color="black", weight=3]; 94[label="primPlusNat vyv400 vyv500",fontsize=16,color="burlywood",shape="triangle"];11658[label="vyv400/Succ vyv4000",fontsize=10,color="white",style="solid",shape="box"];94 -> 11658[label="",style="solid", color="burlywood", weight=9]; 11658 -> 100[label="",style="solid", color="burlywood", weight=3]; 11659[label="vyv400/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 11659[label="",style="solid", color="burlywood", weight=9]; 11659 -> 101[label="",style="solid", color="burlywood", weight=3]; 95 -> 81[label="",style="dashed", color="red", weight=0]; 95[label="pr2F3 (primEqInt (primMinusNat vyv4000 vyv5000) (fromInt (Pos Zero))) vyv3 (primMinusNat vyv4000 vyv5000) vyv3",fontsize=16,color="magenta"];95 -> 102[label="",style="dashed", color="magenta", weight=3]; 95 -> 103[label="",style="dashed", color="magenta", weight=3]; 96 -> 82[label="",style="dashed", color="red", weight=0]; 96[label="pr2F3 (primEqInt (Pos (Succ vyv4000)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv4000)) vyv3",fontsize=16,color="magenta"];96 -> 104[label="",style="dashed", color="magenta", weight=3]; 97[label="pr2F3 (primEqInt (Neg (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];97 -> 105[label="",style="solid", color="black", weight=3]; 98[label="pr2F3 (primEqInt (Pos Zero) (fromInt (Pos Zero))) vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];98 -> 106[label="",style="solid", color="black", weight=3]; 99[label="pr2F0 vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];99 -> 107[label="",style="solid", color="black", weight=3]; 100[label="primPlusNat (Succ vyv4000) vyv500",fontsize=16,color="burlywood",shape="box"];11660[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];100 -> 11660[label="",style="solid", color="burlywood", weight=9]; 11660 -> 108[label="",style="solid", color="burlywood", weight=3]; 11661[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 11661[label="",style="solid", color="burlywood", weight=9]; 11661 -> 109[label="",style="solid", color="burlywood", weight=3]; 101[label="primPlusNat Zero vyv500",fontsize=16,color="burlywood",shape="box"];11662[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];101 -> 11662[label="",style="solid", color="burlywood", weight=9]; 11662 -> 110[label="",style="solid", color="burlywood", weight=3]; 11663[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];101 -> 11663[label="",style="solid", color="burlywood", weight=9]; 11663 -> 111[label="",style="solid", color="burlywood", weight=3]; 102[label="vyv4000",fontsize=16,color="green",shape="box"];103[label="vyv5000",fontsize=16,color="green",shape="box"];104[label="vyv4000",fontsize=16,color="green",shape="box"];105[label="pr2F3 (primEqInt (Neg (Succ vyv5000)) (Pos Zero)) vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];105 -> 112[label="",style="solid", color="black", weight=3]; 106[label="pr2F3 (primEqInt (Pos Zero) (Pos Zero)) vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];106 -> 113[label="",style="solid", color="black", weight=3]; 107 -> 10059[label="",style="dashed", color="red", weight=0]; 107[label="pr2F0G vyv3 vyv3 (Pos (Succ vyv400))",fontsize=16,color="magenta"];107 -> 10060[label="",style="dashed", color="magenta", weight=3]; 107 -> 10061[label="",style="dashed", color="magenta", weight=3]; 107 -> 10062[label="",style="dashed", color="magenta", weight=3]; 108[label="primPlusNat (Succ vyv4000) (Succ vyv5000)",fontsize=16,color="black",shape="box"];108 -> 115[label="",style="solid", color="black", weight=3]; 109[label="primPlusNat (Succ vyv4000) Zero",fontsize=16,color="black",shape="box"];109 -> 116[label="",style="solid", color="black", weight=3]; 110[label="primPlusNat Zero (Succ vyv5000)",fontsize=16,color="black",shape="box"];110 -> 117[label="",style="solid", color="black", weight=3]; 111[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];111 -> 118[label="",style="solid", color="black", weight=3]; 112[label="pr2F3 False vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];112 -> 119[label="",style="solid", color="black", weight=3]; 113[label="pr2F3 True vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];113 -> 120[label="",style="solid", color="black", weight=3]; 10060[label="vyv3",fontsize=16,color="green",shape="box"];10061[label="vyv3",fontsize=16,color="green",shape="box"];10062[label="Pos (Succ vyv400)",fontsize=16,color="green",shape="box"];10059[label="pr2F0G vyv581 vyv302 vyv564",fontsize=16,color="black",shape="triangle"];10059 -> 10116[label="",style="solid", color="black", weight=3]; 115[label="Succ (Succ (primPlusNat vyv4000 vyv5000))",fontsize=16,color="green",shape="box"];115 -> 122[label="",style="dashed", color="green", weight=3]; 116[label="Succ vyv4000",fontsize=16,color="green",shape="box"];117[label="Succ vyv5000",fontsize=16,color="green",shape="box"];118[label="Zero",fontsize=16,color="green",shape="box"];119[label="pr2F0 vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];119 -> 123[label="",style="solid", color="black", weight=3]; 120[label="vyv3",fontsize=16,color="green",shape="box"];10116[label="pr2F0G2 vyv581 vyv302 vyv564",fontsize=16,color="black",shape="box"];10116 -> 10117[label="",style="solid", color="black", weight=3]; 122 -> 94[label="",style="dashed", color="red", weight=0]; 122[label="primPlusNat vyv4000 vyv5000",fontsize=16,color="magenta"];122 -> 125[label="",style="dashed", color="magenta", weight=3]; 122 -> 126[label="",style="dashed", color="magenta", weight=3]; 123 -> 10059[label="",style="dashed", color="red", weight=0]; 123[label="pr2F0G vyv3 vyv3 (Neg (Succ vyv5000))",fontsize=16,color="magenta"];123 -> 10063[label="",style="dashed", color="magenta", weight=3]; 123 -> 10064[label="",style="dashed", color="magenta", weight=3]; 123 -> 10065[label="",style="dashed", color="magenta", weight=3]; 10117[label="pr2F0G1 vyv581 vyv302 vyv564 (even vyv564)",fontsize=16,color="black",shape="box"];10117 -> 10118[label="",style="solid", color="black", weight=3]; 125[label="vyv4000",fontsize=16,color="green",shape="box"];126[label="vyv5000",fontsize=16,color="green",shape="box"];10063[label="vyv3",fontsize=16,color="green",shape="box"];10064[label="vyv3",fontsize=16,color="green",shape="box"];10065[label="Neg (Succ vyv5000)",fontsize=16,color="green",shape="box"];10118[label="pr2F0G1 vyv581 vyv302 vyv564 (primEvenInt vyv564)",fontsize=16,color="burlywood",shape="box"];11664[label="vyv564/Pos vyv5640",fontsize=10,color="white",style="solid",shape="box"];10118 -> 11664[label="",style="solid", color="burlywood", weight=9]; 11664 -> 10119[label="",style="solid", color="burlywood", weight=3]; 11665[label="vyv564/Neg vyv5640",fontsize=10,color="white",style="solid",shape="box"];10118 -> 11665[label="",style="solid", color="burlywood", weight=9]; 11665 -> 10120[label="",style="solid", color="burlywood", weight=3]; 10119[label="pr2F0G1 vyv581 vyv302 (Pos vyv5640) (primEvenInt (Pos vyv5640))",fontsize=16,color="black",shape="box"];10119 -> 10121[label="",style="solid", color="black", weight=3]; 10120[label="pr2F0G1 vyv581 vyv302 (Neg vyv5640) (primEvenInt (Neg vyv5640))",fontsize=16,color="black",shape="box"];10120 -> 10122[label="",style="solid", color="black", weight=3]; 10121[label="pr2F0G1 vyv581 vyv302 (Pos vyv5640) (primEvenNat vyv5640)",fontsize=16,color="burlywood",shape="box"];11666[label="vyv5640/Succ vyv56400",fontsize=10,color="white",style="solid",shape="box"];10121 -> 11666[label="",style="solid", color="burlywood", weight=9]; 11666 -> 10123[label="",style="solid", color="burlywood", weight=3]; 11667[label="vyv5640/Zero",fontsize=10,color="white",style="solid",shape="box"];10121 -> 11667[label="",style="solid", color="burlywood", weight=9]; 11667 -> 10124[label="",style="solid", color="burlywood", weight=3]; 10122[label="pr2F0G1 vyv581 vyv302 (Neg vyv5640) (primEvenNat vyv5640)",fontsize=16,color="burlywood",shape="box"];11668[label="vyv5640/Succ vyv56400",fontsize=10,color="white",style="solid",shape="box"];10122 -> 11668[label="",style="solid", color="burlywood", weight=9]; 11668 -> 10125[label="",style="solid", color="burlywood", weight=3]; 11669[label="vyv5640/Zero",fontsize=10,color="white",style="solid",shape="box"];10122 -> 11669[label="",style="solid", color="burlywood", weight=9]; 11669 -> 10126[label="",style="solid", color="burlywood", weight=3]; 10123[label="pr2F0G1 vyv581 vyv302 (Pos (Succ vyv56400)) (primEvenNat (Succ vyv56400))",fontsize=16,color="burlywood",shape="box"];11670[label="vyv56400/Succ vyv564000",fontsize=10,color="white",style="solid",shape="box"];10123 -> 11670[label="",style="solid", color="burlywood", weight=9]; 11670 -> 10127[label="",style="solid", color="burlywood", weight=3]; 11671[label="vyv56400/Zero",fontsize=10,color="white",style="solid",shape="box"];10123 -> 11671[label="",style="solid", color="burlywood", weight=9]; 11671 -> 10128[label="",style="solid", color="burlywood", weight=3]; 10124[label="pr2F0G1 vyv581 vyv302 (Pos Zero) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10124 -> 10129[label="",style="solid", color="black", weight=3]; 10125[label="pr2F0G1 vyv581 vyv302 (Neg (Succ vyv56400)) (primEvenNat (Succ vyv56400))",fontsize=16,color="burlywood",shape="box"];11672[label="vyv56400/Succ vyv564000",fontsize=10,color="white",style="solid",shape="box"];10125 -> 11672[label="",style="solid", color="burlywood", weight=9]; 11672 -> 10130[label="",style="solid", color="burlywood", weight=3]; 11673[label="vyv56400/Zero",fontsize=10,color="white",style="solid",shape="box"];10125 -> 11673[label="",style="solid", color="burlywood", weight=9]; 11673 -> 10131[label="",style="solid", color="burlywood", weight=3]; 10126[label="pr2F0G1 vyv581 vyv302 (Neg Zero) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10126 -> 10132[label="",style="solid", color="black", weight=3]; 10127[label="pr2F0G1 vyv581 vyv302 (Pos (Succ (Succ vyv564000))) (primEvenNat (Succ (Succ vyv564000)))",fontsize=16,color="black",shape="box"];10127 -> 10133[label="",style="solid", color="black", weight=3]; 10128[label="pr2F0G1 vyv581 vyv302 (Pos (Succ Zero)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10128 -> 10134[label="",style="solid", color="black", weight=3]; 10129[label="pr2F0G1 vyv581 vyv302 (Pos Zero) True",fontsize=16,color="black",shape="box"];10129 -> 10135[label="",style="solid", color="black", weight=3]; 10130[label="pr2F0G1 vyv581 vyv302 (Neg (Succ (Succ vyv564000))) (primEvenNat (Succ (Succ vyv564000)))",fontsize=16,color="black",shape="box"];10130 -> 10136[label="",style="solid", color="black", weight=3]; 10131[label="pr2F0G1 vyv581 vyv302 (Neg (Succ Zero)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10131 -> 10137[label="",style="solid", color="black", weight=3]; 10132[label="pr2F0G1 vyv581 vyv302 (Neg Zero) True",fontsize=16,color="black",shape="box"];10132 -> 10138[label="",style="solid", color="black", weight=3]; 10133 -> 10257[label="",style="dashed", color="red", weight=0]; 10133[label="pr2F0G1 vyv581 vyv302 (Pos (Succ (Succ vyv564000))) (primEvenNat vyv564000)",fontsize=16,color="magenta"];10133 -> 10258[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10259[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10260[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10261[label="",style="dashed", color="magenta", weight=3]; 10134[label="pr2F0G1 vyv581 vyv302 (Pos (Succ Zero)) False",fontsize=16,color="black",shape="box"];10134 -> 10141[label="",style="solid", color="black", weight=3]; 10135 -> 10059[label="",style="dashed", color="red", weight=0]; 10135[label="pr2F0G vyv581 (vyv302 * vyv302) (Pos Zero `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10135 -> 10142[label="",style="dashed", color="magenta", weight=3]; 10135 -> 10143[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10509[label="",style="dashed", color="red", weight=0]; 10136[label="pr2F0G1 vyv581 vyv302 (Neg (Succ (Succ vyv564000))) (primEvenNat vyv564000)",fontsize=16,color="magenta"];10136 -> 10510[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10511[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10512[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10513[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10289[label="",style="dashed", color="red", weight=0]; 10137[label="pr2F0G1 vyv581 vyv302 (Neg (Succ Zero)) False",fontsize=16,color="magenta"];10137 -> 10290[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10291[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10292[label="",style="dashed", color="magenta", weight=3]; 10138 -> 10059[label="",style="dashed", color="red", weight=0]; 10138[label="pr2F0G vyv581 (vyv302 * vyv302) (Neg Zero `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10138 -> 10147[label="",style="dashed", color="magenta", weight=3]; 10138 -> 10148[label="",style="dashed", color="magenta", weight=3]; 10258[label="vyv564000",fontsize=16,color="green",shape="box"];10259[label="vyv581",fontsize=16,color="green",shape="box"];10260[label="Succ vyv564000",fontsize=16,color="green",shape="box"];10261[label="vyv302",fontsize=16,color="green",shape="box"];10257[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat vyv588)",fontsize=16,color="burlywood",shape="triangle"];11674[label="vyv588/Succ vyv5880",fontsize=10,color="white",style="solid",shape="box"];10257 -> 11674[label="",style="solid", color="burlywood", weight=9]; 11674 -> 10270[label="",style="solid", color="burlywood", weight=3]; 11675[label="vyv588/Zero",fontsize=10,color="white",style="solid",shape="box"];10257 -> 11675[label="",style="solid", color="burlywood", weight=9]; 11675 -> 10271[label="",style="solid", color="burlywood", weight=3]; 10141[label="pr2F0G0 vyv581 vyv302 (Pos (Succ Zero)) otherwise",fontsize=16,color="black",shape="box"];10141 -> 10152[label="",style="solid", color="black", weight=3]; 10142[label="vyv302 * vyv302",fontsize=16,color="blue",shape="box"];11676[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11676[label="",style="solid", color="blue", weight=9]; 11676 -> 10153[label="",style="solid", color="blue", weight=3]; 11677[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11677[label="",style="solid", color="blue", weight=9]; 11677 -> 10154[label="",style="solid", color="blue", weight=3]; 11678[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11678[label="",style="solid", color="blue", weight=9]; 11678 -> 10155[label="",style="solid", color="blue", weight=3]; 11679[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11679[label="",style="solid", color="blue", weight=9]; 11679 -> 10156[label="",style="solid", color="blue", weight=3]; 11680[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11680[label="",style="solid", color="blue", weight=9]; 11680 -> 10157[label="",style="solid", color="blue", weight=3]; 10143[label="Pos Zero `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10143 -> 10158[label="",style="solid", color="black", weight=3]; 10510[label="vyv581",fontsize=16,color="green",shape="box"];10511[label="vyv302",fontsize=16,color="green",shape="box"];10512[label="Succ vyv564000",fontsize=16,color="green",shape="box"];10513[label="vyv564000",fontsize=16,color="green",shape="box"];10509[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat vyv611)",fontsize=16,color="burlywood",shape="triangle"];11681[label="vyv611/Succ vyv6110",fontsize=10,color="white",style="solid",shape="box"];10509 -> 11681[label="",style="solid", color="burlywood", weight=9]; 11681 -> 10530[label="",style="solid", color="burlywood", weight=3]; 11682[label="vyv611/Zero",fontsize=10,color="white",style="solid",shape="box"];10509 -> 11682[label="",style="solid", color="burlywood", weight=9]; 11682 -> 10531[label="",style="solid", color="burlywood", weight=3]; 10290[label="vyv302",fontsize=16,color="green",shape="box"];10291[label="Zero",fontsize=16,color="green",shape="box"];10292[label="vyv581",fontsize=16,color="green",shape="box"];10289[label="pr2F0G1 vyv597 vyv598 (Neg (Succ vyv599)) False",fontsize=16,color="black",shape="triangle"];10289 -> 10299[label="",style="solid", color="black", weight=3]; 10147[label="vyv302 * vyv302",fontsize=16,color="blue",shape="box"];11683[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11683[label="",style="solid", color="blue", weight=9]; 11683 -> 10163[label="",style="solid", color="blue", weight=3]; 11684[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11684[label="",style="solid", color="blue", weight=9]; 11684 -> 10164[label="",style="solid", color="blue", weight=3]; 11685[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11685[label="",style="solid", color="blue", weight=9]; 11685 -> 10165[label="",style="solid", color="blue", weight=3]; 11686[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11686[label="",style="solid", color="blue", weight=9]; 11686 -> 10166[label="",style="solid", color="blue", weight=3]; 11687[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11687[label="",style="solid", color="blue", weight=9]; 11687 -> 10167[label="",style="solid", color="blue", weight=3]; 10148[label="Neg Zero `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10148 -> 10168[label="",style="solid", color="black", weight=3]; 10270[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ vyv5880))",fontsize=16,color="burlywood",shape="box"];11688[label="vyv5880/Succ vyv58800",fontsize=10,color="white",style="solid",shape="box"];10270 -> 11688[label="",style="solid", color="burlywood", weight=9]; 11688 -> 10277[label="",style="solid", color="burlywood", weight=3]; 11689[label="vyv5880/Zero",fontsize=10,color="white",style="solid",shape="box"];10270 -> 11689[label="",style="solid", color="burlywood", weight=9]; 11689 -> 10278[label="",style="solid", color="burlywood", weight=3]; 10271[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10271 -> 10279[label="",style="solid", color="black", weight=3]; 10152[label="pr2F0G0 vyv581 vyv302 (Pos (Succ Zero)) True",fontsize=16,color="black",shape="box"];10152 -> 10172[label="",style="solid", color="black", weight=3]; 10153[label="vyv302 * vyv302",fontsize=16,color="burlywood",shape="triangle"];11690[label="vyv302/vyv3020 :% vyv3021",fontsize=10,color="white",style="solid",shape="box"];10153 -> 11690[label="",style="solid", color="burlywood", weight=9]; 11690 -> 10173[label="",style="solid", color="burlywood", weight=3]; 10154[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10154 -> 10174[label="",style="solid", color="black", weight=3]; 10155[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10155 -> 10175[label="",style="solid", color="black", weight=3]; 10156[label="vyv302 * vyv302",fontsize=16,color="burlywood",shape="triangle"];11691[label="vyv302/Integer vyv3020",fontsize=10,color="white",style="solid",shape="box"];10156 -> 11691[label="",style="solid", color="burlywood", weight=9]; 11691 -> 10176[label="",style="solid", color="burlywood", weight=3]; 10157[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10157 -> 10177[label="",style="solid", color="black", weight=3]; 10158 -> 10895[label="",style="dashed", color="red", weight=0]; 10158[label="primQuotInt (Pos Zero) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10158 -> 10896[label="",style="dashed", color="magenta", weight=3]; 10158 -> 10897[label="",style="dashed", color="magenta", weight=3]; 10530[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ vyv6110))",fontsize=16,color="burlywood",shape="box"];11692[label="vyv6110/Succ vyv61100",fontsize=10,color="white",style="solid",shape="box"];10530 -> 11692[label="",style="solid", color="burlywood", weight=9]; 11692 -> 10562[label="",style="solid", color="burlywood", weight=3]; 11693[label="vyv6110/Zero",fontsize=10,color="white",style="solid",shape="box"];10530 -> 11693[label="",style="solid", color="burlywood", weight=9]; 11693 -> 10563[label="",style="solid", color="burlywood", weight=3]; 10531[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10531 -> 10564[label="",style="solid", color="black", weight=3]; 10299[label="pr2F0G0 vyv597 vyv598 (Neg (Succ vyv599)) otherwise",fontsize=16,color="black",shape="box"];10299 -> 10316[label="",style="solid", color="black", weight=3]; 10163 -> 10153[label="",style="dashed", color="red", weight=0]; 10163[label="vyv302 * vyv302",fontsize=16,color="magenta"];10164 -> 10154[label="",style="dashed", color="red", weight=0]; 10164[label="vyv302 * vyv302",fontsize=16,color="magenta"];10165 -> 10155[label="",style="dashed", color="red", weight=0]; 10165[label="vyv302 * vyv302",fontsize=16,color="magenta"];10166 -> 10156[label="",style="dashed", color="red", weight=0]; 10166[label="vyv302 * vyv302",fontsize=16,color="magenta"];10167 -> 10157[label="",style="dashed", color="red", weight=0]; 10167[label="vyv302 * vyv302",fontsize=16,color="magenta"];10168[label="primQuotInt (Neg Zero) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="black",shape="box"];10168 -> 10183[label="",style="solid", color="black", weight=3]; 10277[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ (Succ vyv58800)))",fontsize=16,color="black",shape="box"];10277 -> 10300[label="",style="solid", color="black", weight=3]; 10278[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10278 -> 10301[label="",style="solid", color="black", weight=3]; 10279[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) True",fontsize=16,color="black",shape="box"];10279 -> 10302[label="",style="solid", color="black", weight=3]; 10172 -> 10369[label="",style="dashed", color="red", weight=0]; 10172[label="pr2F vyv302 (Pos (Succ Zero) - fromInt (Pos (Succ Zero))) (vyv302 * vyv581)",fontsize=16,color="magenta"];10172 -> 10370[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10371[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10372[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10373[label="",style="dashed", color="magenta", weight=3]; 10173[label="vyv3020 :% vyv3021 * (vyv3020 :% vyv3021)",fontsize=16,color="black",shape="box"];10173 -> 10191[label="",style="solid", color="black", weight=3]; 10174[label="primMulDouble vyv302 vyv302",fontsize=16,color="burlywood",shape="box"];11694[label="vyv302/Double vyv3020 vyv3021",fontsize=10,color="white",style="solid",shape="box"];10174 -> 11694[label="",style="solid", color="burlywood", weight=9]; 11694 -> 10192[label="",style="solid", color="burlywood", weight=3]; 10175[label="primMulInt vyv302 vyv302",fontsize=16,color="burlywood",shape="triangle"];11695[label="vyv302/Pos vyv3020",fontsize=10,color="white",style="solid",shape="box"];10175 -> 11695[label="",style="solid", color="burlywood", weight=9]; 11695 -> 10193[label="",style="solid", color="burlywood", weight=3]; 11696[label="vyv302/Neg vyv3020",fontsize=10,color="white",style="solid",shape="box"];10175 -> 11696[label="",style="solid", color="burlywood", weight=9]; 11696 -> 10194[label="",style="solid", color="burlywood", weight=3]; 10176[label="Integer vyv3020 * Integer vyv3020",fontsize=16,color="black",shape="box"];10176 -> 10195[label="",style="solid", color="black", weight=3]; 10177[label="primMulFloat vyv302 vyv302",fontsize=16,color="burlywood",shape="box"];11697[label="vyv302/Float vyv3020 vyv3021",fontsize=10,color="white",style="solid",shape="box"];10177 -> 11697[label="",style="solid", color="burlywood", weight=9]; 11697 -> 10196[label="",style="solid", color="burlywood", weight=3]; 10896[label="Zero",fontsize=16,color="green",shape="box"];10897[label="fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="triangle"];10897 -> 10917[label="",style="solid", color="black", weight=3]; 10895[label="primQuotInt (Pos vyv6330) vyv646",fontsize=16,color="burlywood",shape="triangle"];11698[label="vyv646/Pos vyv6460",fontsize=10,color="white",style="solid",shape="box"];10895 -> 11698[label="",style="solid", color="burlywood", weight=9]; 11698 -> 10918[label="",style="solid", color="burlywood", weight=3]; 11699[label="vyv646/Neg vyv6460",fontsize=10,color="white",style="solid",shape="box"];10895 -> 11699[label="",style="solid", color="burlywood", weight=9]; 11699 -> 10919[label="",style="solid", color="burlywood", weight=3]; 10562[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ (Succ vyv61100)))",fontsize=16,color="black",shape="box"];10562 -> 10594[label="",style="solid", color="black", weight=3]; 10563[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10563 -> 10595[label="",style="solid", color="black", weight=3]; 10564[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) True",fontsize=16,color="black",shape="box"];10564 -> 10596[label="",style="solid", color="black", weight=3]; 10316[label="pr2F0G0 vyv597 vyv598 (Neg (Succ vyv599)) True",fontsize=16,color="black",shape="box"];10316 -> 10333[label="",style="solid", color="black", weight=3]; 10183[label="primQuotInt (Neg Zero) (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10183 -> 10205[label="",style="solid", color="black", weight=3]; 10300 -> 10257[label="",style="dashed", color="red", weight=0]; 10300[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat vyv58800)",fontsize=16,color="magenta"];10300 -> 10317[label="",style="dashed", color="magenta", weight=3]; 10301[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) False",fontsize=16,color="black",shape="box"];10301 -> 10318[label="",style="solid", color="black", weight=3]; 10302 -> 10059[label="",style="dashed", color="red", weight=0]; 10302[label="pr2F0G vyv585 (vyv586 * vyv586) (Pos (Succ vyv587) `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10302 -> 10319[label="",style="dashed", color="magenta", weight=3]; 10302 -> 10320[label="",style="dashed", color="magenta", weight=3]; 10302 -> 10321[label="",style="dashed", color="magenta", weight=3]; 10370 -> 29[label="",style="dashed", color="red", weight=0]; 10370[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10371[label="vyv581",fontsize=16,color="green",shape="box"];10372[label="Zero",fontsize=16,color="green",shape="box"];10373[label="vyv302",fontsize=16,color="green",shape="box"];10369[label="pr2F vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="triangle"];10369 -> 10379[label="",style="solid", color="black", weight=3]; 10191[label="reduce (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="black",shape="box"];10191 -> 10217[label="",style="solid", color="black", weight=3]; 10192[label="primMulDouble (Double vyv3020 vyv3021) (Double vyv3020 vyv3021)",fontsize=16,color="black",shape="box"];10192 -> 10218[label="",style="solid", color="black", weight=3]; 10193[label="primMulInt (Pos vyv3020) (Pos vyv3020)",fontsize=16,color="black",shape="box"];10193 -> 10219[label="",style="solid", color="black", weight=3]; 10194[label="primMulInt (Neg vyv3020) (Neg vyv3020)",fontsize=16,color="black",shape="box"];10194 -> 10220[label="",style="solid", color="black", weight=3]; 10195[label="Integer (primMulInt vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10195 -> 10221[label="",style="dashed", color="green", weight=3]; 10196[label="primMulFloat (Float vyv3020 vyv3021) (Float vyv3020 vyv3021)",fontsize=16,color="black",shape="box"];10196 -> 10222[label="",style="solid", color="black", weight=3]; 10917[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];10918[label="primQuotInt (Pos vyv6330) (Pos vyv6460)",fontsize=16,color="burlywood",shape="box"];11700[label="vyv6460/Succ vyv64600",fontsize=10,color="white",style="solid",shape="box"];10918 -> 11700[label="",style="solid", color="burlywood", weight=9]; 11700 -> 10931[label="",style="solid", color="burlywood", weight=3]; 11701[label="vyv6460/Zero",fontsize=10,color="white",style="solid",shape="box"];10918 -> 11701[label="",style="solid", color="burlywood", weight=9]; 11701 -> 10932[label="",style="solid", color="burlywood", weight=3]; 10919[label="primQuotInt (Pos vyv6330) (Neg vyv6460)",fontsize=16,color="burlywood",shape="box"];11702[label="vyv6460/Succ vyv64600",fontsize=10,color="white",style="solid",shape="box"];10919 -> 11702[label="",style="solid", color="burlywood", weight=9]; 11702 -> 10933[label="",style="solid", color="burlywood", weight=3]; 11703[label="vyv6460/Zero",fontsize=10,color="white",style="solid",shape="box"];10919 -> 11703[label="",style="solid", color="burlywood", weight=9]; 11703 -> 10934[label="",style="solid", color="burlywood", weight=3]; 10594 -> 10509[label="",style="dashed", color="red", weight=0]; 10594[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat vyv61100)",fontsize=16,color="magenta"];10594 -> 10633[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10289[label="",style="dashed", color="red", weight=0]; 10595[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) False",fontsize=16,color="magenta"];10595 -> 10634[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10635[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10636[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10059[label="",style="dashed", color="red", weight=0]; 10596[label="pr2F0G vyv608 (vyv609 * vyv609) (Neg (Succ vyv610) `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10596 -> 10637[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10638[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10639[label="",style="dashed", color="magenta", weight=3]; 10333 -> 10343[label="",style="dashed", color="red", weight=0]; 10333[label="pr2F vyv598 (Neg (Succ vyv599) - fromInt (Pos (Succ Zero))) (vyv598 * vyv597)",fontsize=16,color="magenta"];10333 -> 10344[label="",style="dashed", color="magenta", weight=3]; 10205[label="Neg (primDivNatS Zero (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];10205 -> 10235[label="",style="dashed", color="green", weight=3]; 10317[label="vyv58800",fontsize=16,color="green",shape="box"];10318[label="pr2F0G0 vyv585 vyv586 (Pos (Succ vyv587)) otherwise",fontsize=16,color="black",shape="box"];10318 -> 10334[label="",style="solid", color="black", weight=3]; 10319[label="vyv586 * vyv586",fontsize=16,color="blue",shape="box"];11704[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11704[label="",style="solid", color="blue", weight=9]; 11704 -> 10335[label="",style="solid", color="blue", weight=3]; 11705[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11705[label="",style="solid", color="blue", weight=9]; 11705 -> 10336[label="",style="solid", color="blue", weight=3]; 11706[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11706[label="",style="solid", color="blue", weight=9]; 11706 -> 10337[label="",style="solid", color="blue", weight=3]; 11707[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11707[label="",style="solid", color="blue", weight=9]; 11707 -> 10338[label="",style="solid", color="blue", weight=3]; 11708[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11708[label="",style="solid", color="blue", weight=9]; 11708 -> 10339[label="",style="solid", color="blue", weight=3]; 10320[label="vyv585",fontsize=16,color="green",shape="box"];10321[label="Pos (Succ vyv587) `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10321 -> 10340[label="",style="solid", color="black", weight=3]; 10379[label="pr2F4 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10379 -> 10383[label="",style="solid", color="black", weight=3]; 10217[label="reduce2 (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="black",shape="box"];10217 -> 10242[label="",style="solid", color="black", weight=3]; 10218[label="Double (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="green",shape="box"];10218 -> 10243[label="",style="dashed", color="green", weight=3]; 10218 -> 10244[label="",style="dashed", color="green", weight=3]; 10219[label="Pos (primMulNat vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10219 -> 10245[label="",style="dashed", color="green", weight=3]; 10220[label="Pos (primMulNat vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10220 -> 10246[label="",style="dashed", color="green", weight=3]; 10221 -> 10175[label="",style="dashed", color="red", weight=0]; 10221[label="primMulInt vyv3020 vyv3020",fontsize=16,color="magenta"];10221 -> 10247[label="",style="dashed", color="magenta", weight=3]; 10222[label="Float (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="green",shape="box"];10222 -> 10248[label="",style="dashed", color="green", weight=3]; 10222 -> 10249[label="",style="dashed", color="green", weight=3]; 10931[label="primQuotInt (Pos vyv6330) (Pos (Succ vyv64600))",fontsize=16,color="black",shape="box"];10931 -> 10943[label="",style="solid", color="black", weight=3]; 10932[label="primQuotInt (Pos vyv6330) (Pos Zero)",fontsize=16,color="black",shape="box"];10932 -> 10944[label="",style="solid", color="black", weight=3]; 10933[label="primQuotInt (Pos vyv6330) (Neg (Succ vyv64600))",fontsize=16,color="black",shape="box"];10933 -> 10945[label="",style="solid", color="black", weight=3]; 10934[label="primQuotInt (Pos vyv6330) (Neg Zero)",fontsize=16,color="black",shape="box"];10934 -> 10946[label="",style="solid", color="black", weight=3]; 10633[label="vyv61100",fontsize=16,color="green",shape="box"];10634[label="vyv609",fontsize=16,color="green",shape="box"];10635[label="vyv610",fontsize=16,color="green",shape="box"];10636[label="vyv608",fontsize=16,color="green",shape="box"];10637[label="vyv609 * vyv609",fontsize=16,color="blue",shape="box"];11709[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11709[label="",style="solid", color="blue", weight=9]; 11709 -> 10664[label="",style="solid", color="blue", weight=3]; 11710[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11710[label="",style="solid", color="blue", weight=9]; 11710 -> 10665[label="",style="solid", color="blue", weight=3]; 11711[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11711[label="",style="solid", color="blue", weight=9]; 11711 -> 10666[label="",style="solid", color="blue", weight=3]; 11712[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11712[label="",style="solid", color="blue", weight=9]; 11712 -> 10667[label="",style="solid", color="blue", weight=3]; 11713[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11713[label="",style="solid", color="blue", weight=9]; 11713 -> 10668[label="",style="solid", color="blue", weight=3]; 10638[label="vyv608",fontsize=16,color="green",shape="box"];10639[label="Neg (Succ vyv610) `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10639 -> 10669[label="",style="solid", color="black", weight=3]; 10344 -> 29[label="",style="dashed", color="red", weight=0]; 10344[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10343[label="pr2F vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="triangle"];10343 -> 10345[label="",style="solid", color="black", weight=3]; 10235 -> 10223[label="",style="dashed", color="red", weight=0]; 10235[label="primDivNatS Zero (Succ (Succ Zero))",fontsize=16,color="magenta"];10334[label="pr2F0G0 vyv585 vyv586 (Pos (Succ vyv587)) True",fontsize=16,color="black",shape="box"];10334 -> 10346[label="",style="solid", color="black", weight=3]; 10335 -> 10153[label="",style="dashed", color="red", weight=0]; 10335[label="vyv586 * vyv586",fontsize=16,color="magenta"];10335 -> 10347[label="",style="dashed", color="magenta", weight=3]; 10336 -> 10154[label="",style="dashed", color="red", weight=0]; 10336[label="vyv586 * vyv586",fontsize=16,color="magenta"];10336 -> 10348[label="",style="dashed", color="magenta", weight=3]; 10337 -> 10155[label="",style="dashed", color="red", weight=0]; 10337[label="vyv586 * vyv586",fontsize=16,color="magenta"];10337 -> 10349[label="",style="dashed", color="magenta", weight=3]; 10338 -> 10156[label="",style="dashed", color="red", weight=0]; 10338[label="vyv586 * vyv586",fontsize=16,color="magenta"];10338 -> 10350[label="",style="dashed", color="magenta", weight=3]; 10339 -> 10157[label="",style="dashed", color="red", weight=0]; 10339[label="vyv586 * vyv586",fontsize=16,color="magenta"];10339 -> 10351[label="",style="dashed", color="magenta", weight=3]; 10340 -> 10895[label="",style="dashed", color="red", weight=0]; 10340[label="primQuotInt (Pos (Succ vyv587)) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10340 -> 10900[label="",style="dashed", color="magenta", weight=3]; 10340 -> 10901[label="",style="dashed", color="magenta", weight=3]; 10383 -> 10403[label="",style="dashed", color="red", weight=0]; 10383[label="pr2F3 (Pos (Succ vyv587) - vyv603 == fromInt (Pos Zero)) vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="magenta"];10383 -> 10404[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10674[label="",style="dashed", color="red", weight=0]; 10242[label="reduce2Reduce1 (vyv3020 * vyv3020) (vyv3021 * vyv3021) (vyv3020 * vyv3020) (vyv3021 * vyv3021) (vyv3021 * vyv3021 == fromInt (Pos Zero))",fontsize=16,color="magenta"];10242 -> 10675[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10676[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10677[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10678[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10679[label="",style="dashed", color="magenta", weight=3]; 10243 -> 10155[label="",style="dashed", color="red", weight=0]; 10243[label="vyv3020 * vyv3020",fontsize=16,color="magenta"];10243 -> 10280[label="",style="dashed", color="magenta", weight=3]; 10244 -> 10155[label="",style="dashed", color="red", weight=0]; 10244[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10244 -> 10281[label="",style="dashed", color="magenta", weight=3]; 10245[label="primMulNat vyv3020 vyv3020",fontsize=16,color="burlywood",shape="triangle"];11714[label="vyv3020/Succ vyv30200",fontsize=10,color="white",style="solid",shape="box"];10245 -> 11714[label="",style="solid", color="burlywood", weight=9]; 11714 -> 10282[label="",style="solid", color="burlywood", weight=3]; 11715[label="vyv3020/Zero",fontsize=10,color="white",style="solid",shape="box"];10245 -> 11715[label="",style="solid", color="burlywood", weight=9]; 11715 -> 10283[label="",style="solid", color="burlywood", weight=3]; 10246 -> 10245[label="",style="dashed", color="red", weight=0]; 10246[label="primMulNat vyv3020 vyv3020",fontsize=16,color="magenta"];10246 -> 10284[label="",style="dashed", color="magenta", weight=3]; 10247[label="vyv3020",fontsize=16,color="green",shape="box"];10248 -> 10155[label="",style="dashed", color="red", weight=0]; 10248[label="vyv3020 * vyv3020",fontsize=16,color="magenta"];10248 -> 10285[label="",style="dashed", color="magenta", weight=3]; 10249 -> 10155[label="",style="dashed", color="red", weight=0]; 10249[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10249 -> 10286[label="",style="dashed", color="magenta", weight=3]; 10943[label="Pos (primDivNatS vyv6330 (Succ vyv64600))",fontsize=16,color="green",shape="box"];10943 -> 10949[label="",style="dashed", color="green", weight=3]; 10944 -> 65[label="",style="dashed", color="red", weight=0]; 10944[label="error []",fontsize=16,color="magenta"];10945[label="Neg (primDivNatS vyv6330 (Succ vyv64600))",fontsize=16,color="green",shape="box"];10945 -> 10950[label="",style="dashed", color="green", weight=3]; 10946 -> 65[label="",style="dashed", color="red", weight=0]; 10946[label="error []",fontsize=16,color="magenta"];10664 -> 10153[label="",style="dashed", color="red", weight=0]; 10664[label="vyv609 * vyv609",fontsize=16,color="magenta"];10664 -> 10690[label="",style="dashed", color="magenta", weight=3]; 10665 -> 10154[label="",style="dashed", color="red", weight=0]; 10665[label="vyv609 * vyv609",fontsize=16,color="magenta"];10665 -> 10691[label="",style="dashed", color="magenta", weight=3]; 10666 -> 10155[label="",style="dashed", color="red", weight=0]; 10666[label="vyv609 * vyv609",fontsize=16,color="magenta"];10666 -> 10692[label="",style="dashed", color="magenta", weight=3]; 10667 -> 10156[label="",style="dashed", color="red", weight=0]; 10667[label="vyv609 * vyv609",fontsize=16,color="magenta"];10667 -> 10693[label="",style="dashed", color="magenta", weight=3]; 10668 -> 10157[label="",style="dashed", color="red", weight=0]; 10668[label="vyv609 * vyv609",fontsize=16,color="magenta"];10668 -> 10694[label="",style="dashed", color="magenta", weight=3]; 10669[label="primQuotInt (Neg (Succ vyv610)) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="black",shape="box"];10669 -> 10695[label="",style="solid", color="black", weight=3]; 10345[label="pr2F4 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10345 -> 10368[label="",style="solid", color="black", weight=3]; 10223[label="primDivNatS Zero (Succ (Succ Zero))",fontsize=16,color="black",shape="triangle"];10223 -> 10250[label="",style="solid", color="black", weight=3]; 10346 -> 10369[label="",style="dashed", color="red", weight=0]; 10346[label="pr2F vyv586 (Pos (Succ vyv587) - fromInt (Pos (Succ Zero))) (vyv586 * vyv585)",fontsize=16,color="magenta"];10346 -> 10378[label="",style="dashed", color="magenta", weight=3]; 10347[label="vyv586",fontsize=16,color="green",shape="box"];10348[label="vyv586",fontsize=16,color="green",shape="box"];10349[label="vyv586",fontsize=16,color="green",shape="box"];10350[label="vyv586",fontsize=16,color="green",shape="box"];10351[label="vyv586",fontsize=16,color="green",shape="box"];10900[label="Succ vyv587",fontsize=16,color="green",shape="box"];10901 -> 10897[label="",style="dashed", color="red", weight=0]; 10901[label="fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="magenta"];10404 -> 10331[label="",style="dashed", color="red", weight=0]; 10404[label="Pos (Succ vyv587) - vyv603 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10404 -> 10405[label="",style="dashed", color="magenta", weight=3]; 10403[label="pr2F3 vyv605 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="burlywood",shape="triangle"];11716[label="vyv605/False",fontsize=10,color="white",style="solid",shape="box"];10403 -> 11716[label="",style="solid", color="burlywood", weight=9]; 11716 -> 10406[label="",style="solid", color="burlywood", weight=3]; 11717[label="vyv605/True",fontsize=10,color="white",style="solid",shape="box"];10403 -> 11717[label="",style="solid", color="burlywood", weight=9]; 11717 -> 10407[label="",style="solid", color="burlywood", weight=3]; 10675[label="vyv3020",fontsize=16,color="green",shape="box"];10676[label="vyv3021",fontsize=16,color="green",shape="box"];10677[label="vyv3021",fontsize=16,color="green",shape="box"];10678[label="vyv3020",fontsize=16,color="green",shape="box"];10679[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];11718[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];10679 -> 11718[label="",style="solid", color="blue", weight=9]; 11718 -> 10696[label="",style="solid", color="blue", weight=3]; 11719[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];10679 -> 11719[label="",style="solid", color="blue", weight=9]; 11719 -> 10697[label="",style="solid", color="blue", weight=3]; 10674[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) vyv628",fontsize=16,color="burlywood",shape="triangle"];11720[label="vyv628/False",fontsize=10,color="white",style="solid",shape="box"];10674 -> 11720[label="",style="solid", color="burlywood", weight=9]; 11720 -> 10698[label="",style="solid", color="burlywood", weight=3]; 11721[label="vyv628/True",fontsize=10,color="white",style="solid",shape="box"];10674 -> 11721[label="",style="solid", color="burlywood", weight=9]; 11721 -> 10699[label="",style="solid", color="burlywood", weight=3]; 10280[label="vyv3020",fontsize=16,color="green",shape="box"];10281[label="vyv3021",fontsize=16,color="green",shape="box"];10282[label="primMulNat (Succ vyv30200) (Succ vyv30200)",fontsize=16,color="black",shape="box"];10282 -> 10311[label="",style="solid", color="black", weight=3]; 10283[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];10283 -> 10312[label="",style="solid", color="black", weight=3]; 10284[label="vyv3020",fontsize=16,color="green",shape="box"];10285[label="vyv3020",fontsize=16,color="green",shape="box"];10286[label="vyv3021",fontsize=16,color="green",shape="box"];10949[label="primDivNatS vyv6330 (Succ vyv64600)",fontsize=16,color="burlywood",shape="triangle"];11722[label="vyv6330/Succ vyv63300",fontsize=10,color="white",style="solid",shape="box"];10949 -> 11722[label="",style="solid", color="burlywood", weight=9]; 11722 -> 10968[label="",style="solid", color="burlywood", weight=3]; 11723[label="vyv6330/Zero",fontsize=10,color="white",style="solid",shape="box"];10949 -> 11723[label="",style="solid", color="burlywood", weight=9]; 11723 -> 10969[label="",style="solid", color="burlywood", weight=3]; 10950 -> 10949[label="",style="dashed", color="red", weight=0]; 10950[label="primDivNatS vyv6330 (Succ vyv64600)",fontsize=16,color="magenta"];10950 -> 10970[label="",style="dashed", color="magenta", weight=3]; 10690[label="vyv609",fontsize=16,color="green",shape="box"];10691[label="vyv609",fontsize=16,color="green",shape="box"];10692[label="vyv609",fontsize=16,color="green",shape="box"];10693[label="vyv609",fontsize=16,color="green",shape="box"];10694[label="vyv609",fontsize=16,color="green",shape="box"];10695[label="primQuotInt (Neg (Succ vyv610)) (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10695 -> 10722[label="",style="solid", color="black", weight=3]; 10368 -> 10381[label="",style="dashed", color="red", weight=0]; 10368[label="pr2F3 (Neg (Succ vyv599) - vyv602 == fromInt (Pos Zero)) vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="magenta"];10368 -> 10382[label="",style="dashed", color="magenta", weight=3]; 10250[label="Zero",fontsize=16,color="green",shape="box"];10378 -> 29[label="",style="dashed", color="red", weight=0]; 10378[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10405[label="Pos (Succ vyv587) - vyv603",fontsize=16,color="black",shape="triangle"];10405 -> 10431[label="",style="solid", color="black", weight=3]; 10331[label="vyv600 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10331 -> 10365[label="",style="solid", color="black", weight=3]; 10406[label="pr2F3 False vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10406 -> 10432[label="",style="solid", color="black", weight=3]; 10407[label="pr2F3 True vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10407 -> 10433[label="",style="solid", color="black", weight=3]; 10696 -> 10331[label="",style="dashed", color="red", weight=0]; 10696[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10696 -> 10723[label="",style="dashed", color="magenta", weight=3]; 10697 -> 10724[label="",style="dashed", color="red", weight=0]; 10697[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10697 -> 10725[label="",style="dashed", color="magenta", weight=3]; 10698[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) False",fontsize=16,color="black",shape="box"];10698 -> 10727[label="",style="solid", color="black", weight=3]; 10699[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) True",fontsize=16,color="black",shape="box"];10699 -> 10728[label="",style="solid", color="black", weight=3]; 10311 -> 94[label="",style="dashed", color="red", weight=0]; 10311[label="primPlusNat (primMulNat vyv30200 (Succ vyv30200)) (Succ vyv30200)",fontsize=16,color="magenta"];10311 -> 10355[label="",style="dashed", color="magenta", weight=3]; 10311 -> 10356[label="",style="dashed", color="magenta", weight=3]; 10312[label="Zero",fontsize=16,color="green",shape="box"];10968[label="primDivNatS (Succ vyv63300) (Succ vyv64600)",fontsize=16,color="black",shape="box"];10968 -> 10988[label="",style="solid", color="black", weight=3]; 10969[label="primDivNatS Zero (Succ vyv64600)",fontsize=16,color="black",shape="box"];10969 -> 10989[label="",style="solid", color="black", weight=3]; 10970[label="vyv64600",fontsize=16,color="green",shape="box"];10722[label="Neg (primDivNatS (Succ vyv610) (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];10722 -> 10729[label="",style="dashed", color="green", weight=3]; 10382 -> 10331[label="",style="dashed", color="red", weight=0]; 10382[label="Neg (Succ vyv599) - vyv602 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10382 -> 10385[label="",style="dashed", color="magenta", weight=3]; 10381[label="pr2F3 vyv604 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="burlywood",shape="triangle"];11724[label="vyv604/False",fontsize=10,color="white",style="solid",shape="box"];10381 -> 11724[label="",style="solid", color="burlywood", weight=9]; 11724 -> 10386[label="",style="solid", color="burlywood", weight=3]; 11725[label="vyv604/True",fontsize=10,color="white",style="solid",shape="box"];10381 -> 11725[label="",style="solid", color="burlywood", weight=9]; 11725 -> 10387[label="",style="solid", color="burlywood", weight=3]; 10431[label="primMinusInt (Pos (Succ vyv587)) vyv603",fontsize=16,color="burlywood",shape="box"];11726[label="vyv603/Pos vyv6030",fontsize=10,color="white",style="solid",shape="box"];10431 -> 11726[label="",style="solid", color="burlywood", weight=9]; 11726 -> 10443[label="",style="solid", color="burlywood", weight=3]; 11727[label="vyv603/Neg vyv6030",fontsize=10,color="white",style="solid",shape="box"];10431 -> 11727[label="",style="solid", color="burlywood", weight=9]; 11727 -> 10444[label="",style="solid", color="burlywood", weight=3]; 10365[label="primEqInt vyv600 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11728[label="vyv600/Pos vyv6000",fontsize=10,color="white",style="solid",shape="box"];10365 -> 11728[label="",style="solid", color="burlywood", weight=9]; 11728 -> 10400[label="",style="solid", color="burlywood", weight=3]; 11729[label="vyv600/Neg vyv6000",fontsize=10,color="white",style="solid",shape="box"];10365 -> 11729[label="",style="solid", color="burlywood", weight=9]; 11729 -> 10401[label="",style="solid", color="burlywood", weight=3]; 10432 -> 10438[label="",style="dashed", color="red", weight=0]; 10432[label="pr2F0 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="magenta"];10432 -> 10439[label="",style="dashed", color="magenta", weight=3]; 10432 -> 10440[label="",style="dashed", color="magenta", weight=3]; 10432 -> 10441[label="",style="dashed", color="magenta", weight=3]; 10433[label="vyv586 * vyv585",fontsize=16,color="blue",shape="box"];11730[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11730[label="",style="solid", color="blue", weight=9]; 11730 -> 10445[label="",style="solid", color="blue", weight=3]; 11731[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11731[label="",style="solid", color="blue", weight=9]; 11731 -> 10446[label="",style="solid", color="blue", weight=3]; 11732[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11732[label="",style="solid", color="blue", weight=9]; 11732 -> 10447[label="",style="solid", color="blue", weight=3]; 11733[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11733[label="",style="solid", color="blue", weight=9]; 11733 -> 10448[label="",style="solid", color="blue", weight=3]; 11734[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11734[label="",style="solid", color="blue", weight=9]; 11734 -> 10449[label="",style="solid", color="blue", weight=3]; 10723 -> 10155[label="",style="dashed", color="red", weight=0]; 10723[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10723 -> 10730[label="",style="dashed", color="magenta", weight=3]; 10725 -> 10156[label="",style="dashed", color="red", weight=0]; 10725[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10725 -> 10731[label="",style="dashed", color="magenta", weight=3]; 10724[label="vyv629 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];11735[label="vyv629/Integer vyv6290",fontsize=10,color="white",style="solid",shape="box"];10724 -> 11735[label="",style="solid", color="burlywood", weight=9]; 11735 -> 10732[label="",style="solid", color="burlywood", weight=3]; 10727[label="reduce2Reduce0 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) otherwise",fontsize=16,color="black",shape="box"];10727 -> 10742[label="",style="solid", color="black", weight=3]; 10728 -> 65[label="",style="dashed", color="red", weight=0]; 10728[label="error []",fontsize=16,color="magenta"];10355[label="primMulNat vyv30200 (Succ vyv30200)",fontsize=16,color="burlywood",shape="box"];11736[label="vyv30200/Succ vyv302000",fontsize=10,color="white",style="solid",shape="box"];10355 -> 11736[label="",style="solid", color="burlywood", weight=9]; 11736 -> 10389[label="",style="solid", color="burlywood", weight=3]; 11737[label="vyv30200/Zero",fontsize=10,color="white",style="solid",shape="box"];10355 -> 11737[label="",style="solid", color="burlywood", weight=9]; 11737 -> 10390[label="",style="solid", color="burlywood", weight=3]; 10356[label="Succ vyv30200",fontsize=16,color="green",shape="box"];10988[label="primDivNatS0 vyv63300 vyv64600 (primGEqNatS vyv63300 vyv64600)",fontsize=16,color="burlywood",shape="box"];11738[label="vyv63300/Succ vyv633000",fontsize=10,color="white",style="solid",shape="box"];10988 -> 11738[label="",style="solid", color="burlywood", weight=9]; 11738 -> 10992[label="",style="solid", color="burlywood", weight=3]; 11739[label="vyv63300/Zero",fontsize=10,color="white",style="solid",shape="box"];10988 -> 11739[label="",style="solid", color="burlywood", weight=9]; 11739 -> 10993[label="",style="solid", color="burlywood", weight=3]; 10989[label="Zero",fontsize=16,color="green",shape="box"];10729 -> 10384[label="",style="dashed", color="red", weight=0]; 10729[label="primDivNatS (Succ vyv610) (Succ (Succ Zero))",fontsize=16,color="magenta"];10729 -> 10743[label="",style="dashed", color="magenta", weight=3]; 10385[label="Neg (Succ vyv599) - vyv602",fontsize=16,color="black",shape="triangle"];10385 -> 10409[label="",style="solid", color="black", weight=3]; 10386[label="pr2F3 False vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10386 -> 10410[label="",style="solid", color="black", weight=3]; 10387[label="pr2F3 True vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10387 -> 10411[label="",style="solid", color="black", weight=3]; 10443[label="primMinusInt (Pos (Succ vyv587)) (Pos vyv6030)",fontsize=16,color="black",shape="box"];10443 -> 10476[label="",style="solid", color="black", weight=3]; 10444[label="primMinusInt (Pos (Succ vyv587)) (Neg vyv6030)",fontsize=16,color="black",shape="box"];10444 -> 10477[label="",style="solid", color="black", weight=3]; 10400[label="primEqInt (Pos vyv6000) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11740[label="vyv6000/Succ vyv60000",fontsize=10,color="white",style="solid",shape="box"];10400 -> 11740[label="",style="solid", color="burlywood", weight=9]; 11740 -> 10426[label="",style="solid", color="burlywood", weight=3]; 11741[label="vyv6000/Zero",fontsize=10,color="white",style="solid",shape="box"];10400 -> 11741[label="",style="solid", color="burlywood", weight=9]; 11741 -> 10427[label="",style="solid", color="burlywood", weight=3]; 10401[label="primEqInt (Neg vyv6000) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11742[label="vyv6000/Succ vyv60000",fontsize=10,color="white",style="solid",shape="box"];10401 -> 11742[label="",style="solid", color="burlywood", weight=9]; 11742 -> 10428[label="",style="solid", color="burlywood", weight=3]; 11743[label="vyv6000/Zero",fontsize=10,color="white",style="solid",shape="box"];10401 -> 11743[label="",style="solid", color="burlywood", weight=9]; 11743 -> 10429[label="",style="solid", color="burlywood", weight=3]; 10439[label="vyv586",fontsize=16,color="green",shape="box"];10440 -> 10405[label="",style="dashed", color="red", weight=0]; 10440[label="Pos (Succ vyv587) - vyv603",fontsize=16,color="magenta"];10441[label="vyv585",fontsize=16,color="green",shape="box"];10438[label="pr2F0 vyv598 vyv606 (vyv598 * vyv597)",fontsize=16,color="black",shape="triangle"];10438 -> 10450[label="",style="solid", color="black", weight=3]; 10445[label="vyv586 * vyv585",fontsize=16,color="burlywood",shape="triangle"];11744[label="vyv586/vyv5860 :% vyv5861",fontsize=10,color="white",style="solid",shape="box"];10445 -> 11744[label="",style="solid", color="burlywood", weight=9]; 11744 -> 10478[label="",style="solid", color="burlywood", weight=3]; 10446[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10446 -> 10479[label="",style="solid", color="black", weight=3]; 10447[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10447 -> 10480[label="",style="solid", color="black", weight=3]; 10448[label="vyv586 * vyv585",fontsize=16,color="burlywood",shape="triangle"];11745[label="vyv586/Integer vyv5860",fontsize=10,color="white",style="solid",shape="box"];10448 -> 11745[label="",style="solid", color="burlywood", weight=9]; 11745 -> 10481[label="",style="solid", color="burlywood", weight=3]; 10449[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10449 -> 10482[label="",style="solid", color="black", weight=3]; 10730[label="vyv3021",fontsize=16,color="green",shape="box"];10731[label="vyv3021",fontsize=16,color="green",shape="box"];10732[label="Integer vyv6290 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];10732 -> 10744[label="",style="solid", color="black", weight=3]; 10742[label="reduce2Reduce0 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) True",fontsize=16,color="black",shape="box"];10742 -> 10752[label="",style="solid", color="black", weight=3]; 10389[label="primMulNat (Succ vyv302000) (Succ (Succ vyv302000))",fontsize=16,color="black",shape="box"];10389 -> 10413[label="",style="solid", color="black", weight=3]; 10390[label="primMulNat Zero (Succ Zero)",fontsize=16,color="black",shape="box"];10390 -> 10414[label="",style="solid", color="black", weight=3]; 10992[label="primDivNatS0 (Succ vyv633000) vyv64600 (primGEqNatS (Succ vyv633000) vyv64600)",fontsize=16,color="burlywood",shape="box"];11746[label="vyv64600/Succ vyv646000",fontsize=10,color="white",style="solid",shape="box"];10992 -> 11746[label="",style="solid", color="burlywood", weight=9]; 11746 -> 11003[label="",style="solid", color="burlywood", weight=3]; 11747[label="vyv64600/Zero",fontsize=10,color="white",style="solid",shape="box"];10992 -> 11747[label="",style="solid", color="burlywood", weight=9]; 11747 -> 11004[label="",style="solid", color="burlywood", weight=3]; 10993[label="primDivNatS0 Zero vyv64600 (primGEqNatS Zero vyv64600)",fontsize=16,color="burlywood",shape="box"];11748[label="vyv64600/Succ vyv646000",fontsize=10,color="white",style="solid",shape="box"];10993 -> 11748[label="",style="solid", color="burlywood", weight=9]; 11748 -> 11005[label="",style="solid", color="burlywood", weight=3]; 11749[label="vyv64600/Zero",fontsize=10,color="white",style="solid",shape="box"];10993 -> 11749[label="",style="solid", color="burlywood", weight=9]; 11749 -> 11006[label="",style="solid", color="burlywood", weight=3]; 10743[label="vyv610",fontsize=16,color="green",shape="box"];10384[label="primDivNatS (Succ vyv587) (Succ (Succ Zero))",fontsize=16,color="black",shape="triangle"];10384 -> 10408[label="",style="solid", color="black", weight=3]; 10409[label="primMinusInt (Neg (Succ vyv599)) vyv602",fontsize=16,color="burlywood",shape="box"];11750[label="vyv602/Pos vyv6020",fontsize=10,color="white",style="solid",shape="box"];10409 -> 11750[label="",style="solid", color="burlywood", weight=9]; 11750 -> 10436[label="",style="solid", color="burlywood", weight=3]; 11751[label="vyv602/Neg vyv6020",fontsize=10,color="white",style="solid",shape="box"];10409 -> 11751[label="",style="solid", color="burlywood", weight=9]; 11751 -> 10437[label="",style="solid", color="burlywood", weight=3]; 10410 -> 10438[label="",style="dashed", color="red", weight=0]; 10410[label="pr2F0 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="magenta"];10410 -> 10442[label="",style="dashed", color="magenta", weight=3]; 10411[label="vyv598 * vyv597",fontsize=16,color="blue",shape="box"];11752[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11752[label="",style="solid", color="blue", weight=9]; 11752 -> 10451[label="",style="solid", color="blue", weight=3]; 11753[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11753[label="",style="solid", color="blue", weight=9]; 11753 -> 10452[label="",style="solid", color="blue", weight=3]; 11754[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11754[label="",style="solid", color="blue", weight=9]; 11754 -> 10453[label="",style="solid", color="blue", weight=3]; 11755[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11755[label="",style="solid", color="blue", weight=9]; 11755 -> 10454[label="",style="solid", color="blue", weight=3]; 11756[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11756[label="",style="solid", color="blue", weight=9]; 11756 -> 10455[label="",style="solid", color="blue", weight=3]; 10476[label="primMinusNat (Succ vyv587) vyv6030",fontsize=16,color="burlywood",shape="box"];11757[label="vyv6030/Succ vyv60300",fontsize=10,color="white",style="solid",shape="box"];10476 -> 11757[label="",style="solid", color="burlywood", weight=9]; 11757 -> 10532[label="",style="solid", color="burlywood", weight=3]; 11758[label="vyv6030/Zero",fontsize=10,color="white",style="solid",shape="box"];10476 -> 11758[label="",style="solid", color="burlywood", weight=9]; 11758 -> 10533[label="",style="solid", color="burlywood", weight=3]; 10477[label="Pos (primPlusNat (Succ vyv587) vyv6030)",fontsize=16,color="green",shape="box"];10477 -> 10534[label="",style="dashed", color="green", weight=3]; 10426[label="primEqInt (Pos (Succ vyv60000)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10426 -> 10458[label="",style="solid", color="black", weight=3]; 10427[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10427 -> 10459[label="",style="solid", color="black", weight=3]; 10428[label="primEqInt (Neg (Succ vyv60000)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10428 -> 10460[label="",style="solid", color="black", weight=3]; 10429[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10429 -> 10461[label="",style="solid", color="black", weight=3]; 10450 -> 10059[label="",style="dashed", color="red", weight=0]; 10450[label="pr2F0G (vyv598 * vyv597) vyv598 vyv606",fontsize=16,color="magenta"];10450 -> 10483[label="",style="dashed", color="magenta", weight=3]; 10450 -> 10484[label="",style="dashed", color="magenta", weight=3]; 10450 -> 10485[label="",style="dashed", color="magenta", weight=3]; 10478[label="vyv5860 :% vyv5861 * vyv585",fontsize=16,color="burlywood",shape="box"];11759[label="vyv585/vyv5850 :% vyv5851",fontsize=10,color="white",style="solid",shape="box"];10478 -> 11759[label="",style="solid", color="burlywood", weight=9]; 11759 -> 10535[label="",style="solid", color="burlywood", weight=3]; 10479[label="primMulDouble vyv586 vyv585",fontsize=16,color="burlywood",shape="box"];11760[label="vyv586/Double vyv5860 vyv5861",fontsize=10,color="white",style="solid",shape="box"];10479 -> 11760[label="",style="solid", color="burlywood", weight=9]; 11760 -> 10536[label="",style="solid", color="burlywood", weight=3]; 10480[label="primMulInt vyv586 vyv585",fontsize=16,color="burlywood",shape="triangle"];11761[label="vyv586/Pos vyv5860",fontsize=10,color="white",style="solid",shape="box"];10480 -> 11761[label="",style="solid", color="burlywood", weight=9]; 11761 -> 10537[label="",style="solid", color="burlywood", weight=3]; 11762[label="vyv586/Neg vyv5860",fontsize=10,color="white",style="solid",shape="box"];10480 -> 11762[label="",style="solid", color="burlywood", weight=9]; 11762 -> 10538[label="",style="solid", color="burlywood", weight=3]; 10481[label="Integer vyv5860 * vyv585",fontsize=16,color="burlywood",shape="box"];11763[label="vyv585/Integer vyv5850",fontsize=10,color="white",style="solid",shape="box"];10481 -> 11763[label="",style="solid", color="burlywood", weight=9]; 11763 -> 10539[label="",style="solid", color="burlywood", weight=3]; 10482[label="primMulFloat vyv586 vyv585",fontsize=16,color="burlywood",shape="box"];11764[label="vyv586/Float vyv5860 vyv5861",fontsize=10,color="white",style="solid",shape="box"];10482 -> 11764[label="",style="solid", color="burlywood", weight=9]; 11764 -> 10540[label="",style="solid", color="burlywood", weight=3]; 10744[label="Integer vyv6290 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];10744 -> 10753[label="",style="solid", color="black", weight=3]; 10752[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627) :% (vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627))",fontsize=16,color="green",shape="box"];10752 -> 10756[label="",style="dashed", color="green", weight=3]; 10752 -> 10757[label="",style="dashed", color="green", weight=3]; 10413 -> 94[label="",style="dashed", color="red", weight=0]; 10413[label="primPlusNat (primMulNat vyv302000 (Succ (Succ vyv302000))) (Succ (Succ vyv302000))",fontsize=16,color="magenta"];10413 -> 10464[label="",style="dashed", color="magenta", weight=3]; 10413 -> 10465[label="",style="dashed", color="magenta", weight=3]; 10414[label="Zero",fontsize=16,color="green",shape="box"];11003[label="primDivNatS0 (Succ vyv633000) (Succ vyv646000) (primGEqNatS (Succ vyv633000) (Succ vyv646000))",fontsize=16,color="black",shape="box"];11003 -> 11024[label="",style="solid", color="black", weight=3]; 11004[label="primDivNatS0 (Succ vyv633000) Zero (primGEqNatS (Succ vyv633000) Zero)",fontsize=16,color="black",shape="box"];11004 -> 11025[label="",style="solid", color="black", weight=3]; 11005[label="primDivNatS0 Zero (Succ vyv646000) (primGEqNatS Zero (Succ vyv646000))",fontsize=16,color="black",shape="box"];11005 -> 11026[label="",style="solid", color="black", weight=3]; 11006[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11006 -> 11027[label="",style="solid", color="black", weight=3]; 10408[label="primDivNatS0 vyv587 (Succ Zero) (primGEqNatS vyv587 (Succ Zero))",fontsize=16,color="burlywood",shape="box"];11765[label="vyv587/Succ vyv5870",fontsize=10,color="white",style="solid",shape="box"];10408 -> 11765[label="",style="solid", color="burlywood", weight=9]; 11765 -> 10434[label="",style="solid", color="burlywood", weight=3]; 11766[label="vyv587/Zero",fontsize=10,color="white",style="solid",shape="box"];10408 -> 11766[label="",style="solid", color="burlywood", weight=9]; 11766 -> 10435[label="",style="solid", color="burlywood", weight=3]; 10436[label="primMinusInt (Neg (Succ vyv599)) (Pos vyv6020)",fontsize=16,color="black",shape="box"];10436 -> 10472[label="",style="solid", color="black", weight=3]; 10437[label="primMinusInt (Neg (Succ vyv599)) (Neg vyv6020)",fontsize=16,color="black",shape="box"];10437 -> 10473[label="",style="solid", color="black", weight=3]; 10442 -> 10385[label="",style="dashed", color="red", weight=0]; 10442[label="Neg (Succ vyv599) - vyv602",fontsize=16,color="magenta"];10451 -> 10445[label="",style="dashed", color="red", weight=0]; 10451[label="vyv598 * vyv597",fontsize=16,color="magenta"];10451 -> 10486[label="",style="dashed", color="magenta", weight=3]; 10451 -> 10487[label="",style="dashed", color="magenta", weight=3]; 10452 -> 10446[label="",style="dashed", color="red", weight=0]; 10452[label="vyv598 * vyv597",fontsize=16,color="magenta"];10452 -> 10488[label="",style="dashed", color="magenta", weight=3]; 10452 -> 10489[label="",style="dashed", color="magenta", weight=3]; 10453 -> 10447[label="",style="dashed", color="red", weight=0]; 10453[label="vyv598 * vyv597",fontsize=16,color="magenta"];10453 -> 10490[label="",style="dashed", color="magenta", weight=3]; 10453 -> 10491[label="",style="dashed", color="magenta", weight=3]; 10454 -> 10448[label="",style="dashed", color="red", weight=0]; 10454[label="vyv598 * vyv597",fontsize=16,color="magenta"];10454 -> 10492[label="",style="dashed", color="magenta", weight=3]; 10454 -> 10493[label="",style="dashed", color="magenta", weight=3]; 10455 -> 10449[label="",style="dashed", color="red", weight=0]; 10455[label="vyv598 * vyv597",fontsize=16,color="magenta"];10455 -> 10494[label="",style="dashed", color="magenta", weight=3]; 10455 -> 10495[label="",style="dashed", color="magenta", weight=3]; 10532[label="primMinusNat (Succ vyv587) (Succ vyv60300)",fontsize=16,color="black",shape="box"];10532 -> 10565[label="",style="solid", color="black", weight=3]; 10533[label="primMinusNat (Succ vyv587) Zero",fontsize=16,color="black",shape="box"];10533 -> 10566[label="",style="solid", color="black", weight=3]; 10534 -> 94[label="",style="dashed", color="red", weight=0]; 10534[label="primPlusNat (Succ vyv587) vyv6030",fontsize=16,color="magenta"];10534 -> 10567[label="",style="dashed", color="magenta", weight=3]; 10534 -> 10568[label="",style="dashed", color="magenta", weight=3]; 10458 -> 10430[label="",style="dashed", color="red", weight=0]; 10458[label="primEqInt (Pos (Succ vyv60000)) (Pos Zero)",fontsize=16,color="magenta"];10458 -> 10499[label="",style="dashed", color="magenta", weight=3]; 10459 -> 10430[label="",style="dashed", color="red", weight=0]; 10459[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];10459 -> 10500[label="",style="dashed", color="magenta", weight=3]; 10460 -> 10430[label="",style="dashed", color="red", weight=0]; 10460[label="primEqInt (Neg (Succ vyv60000)) (Pos Zero)",fontsize=16,color="magenta"];10460 -> 10501[label="",style="dashed", color="magenta", weight=3]; 10461 -> 10430[label="",style="dashed", color="red", weight=0]; 10461[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];10461 -> 10502[label="",style="dashed", color="magenta", weight=3]; 10483[label="vyv598",fontsize=16,color="green",shape="box"];10484[label="vyv598 * vyv597",fontsize=16,color="blue",shape="box"];11767[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11767[label="",style="solid", color="blue", weight=9]; 11767 -> 10541[label="",style="solid", color="blue", weight=3]; 11768[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11768[label="",style="solid", color="blue", weight=9]; 11768 -> 10542[label="",style="solid", color="blue", weight=3]; 11769[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11769[label="",style="solid", color="blue", weight=9]; 11769 -> 10543[label="",style="solid", color="blue", weight=3]; 11770[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11770[label="",style="solid", color="blue", weight=9]; 11770 -> 10544[label="",style="solid", color="blue", weight=3]; 11771[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11771[label="",style="solid", color="blue", weight=9]; 11771 -> 10545[label="",style="solid", color="blue", weight=3]; 10485[label="vyv606",fontsize=16,color="green",shape="box"];10535[label="vyv5860 :% vyv5861 * (vyv5850 :% vyv5851)",fontsize=16,color="black",shape="box"];10535 -> 10569[label="",style="solid", color="black", weight=3]; 10536[label="primMulDouble (Double vyv5860 vyv5861) vyv585",fontsize=16,color="burlywood",shape="box"];11772[label="vyv585/Double vyv5850 vyv5851",fontsize=10,color="white",style="solid",shape="box"];10536 -> 11772[label="",style="solid", color="burlywood", weight=9]; 11772 -> 10570[label="",style="solid", color="burlywood", weight=3]; 10537[label="primMulInt (Pos vyv5860) vyv585",fontsize=16,color="burlywood",shape="box"];11773[label="vyv585/Pos vyv5850",fontsize=10,color="white",style="solid",shape="box"];10537 -> 11773[label="",style="solid", color="burlywood", weight=9]; 11773 -> 10571[label="",style="solid", color="burlywood", weight=3]; 11774[label="vyv585/Neg vyv5850",fontsize=10,color="white",style="solid",shape="box"];10537 -> 11774[label="",style="solid", color="burlywood", weight=9]; 11774 -> 10572[label="",style="solid", color="burlywood", weight=3]; 10538[label="primMulInt (Neg vyv5860) vyv585",fontsize=16,color="burlywood",shape="box"];11775[label="vyv585/Pos vyv5850",fontsize=10,color="white",style="solid",shape="box"];10538 -> 11775[label="",style="solid", color="burlywood", weight=9]; 11775 -> 10573[label="",style="solid", color="burlywood", weight=3]; 11776[label="vyv585/Neg vyv5850",fontsize=10,color="white",style="solid",shape="box"];10538 -> 11776[label="",style="solid", color="burlywood", weight=9]; 11776 -> 10574[label="",style="solid", color="burlywood", weight=3]; 10539[label="Integer vyv5860 * Integer vyv5850",fontsize=16,color="black",shape="box"];10539 -> 10575[label="",style="solid", color="black", weight=3]; 10540[label="primMulFloat (Float vyv5860 vyv5861) vyv585",fontsize=16,color="burlywood",shape="box"];11777[label="vyv585/Float vyv5850 vyv5851",fontsize=10,color="white",style="solid",shape="box"];10540 -> 11777[label="",style="solid", color="burlywood", weight=9]; 11777 -> 10576[label="",style="solid", color="burlywood", weight=3]; 10753 -> 10430[label="",style="dashed", color="red", weight=0]; 10753[label="primEqInt vyv6290 (Pos Zero)",fontsize=16,color="magenta"];10753 -> 10758[label="",style="dashed", color="magenta", weight=3]; 10756[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="blue",shape="box"];11778[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10756 -> 11778[label="",style="solid", color="blue", weight=9]; 11778 -> 10761[label="",style="solid", color="blue", weight=3]; 11779[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10756 -> 11779[label="",style="solid", color="blue", weight=9]; 11779 -> 10762[label="",style="solid", color="blue", weight=3]; 10757[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="blue",shape="box"];11780[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10757 -> 11780[label="",style="solid", color="blue", weight=9]; 11780 -> 10763[label="",style="solid", color="blue", weight=3]; 11781[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10757 -> 11781[label="",style="solid", color="blue", weight=9]; 11781 -> 10764[label="",style="solid", color="blue", weight=3]; 10464[label="primMulNat vyv302000 (Succ (Succ vyv302000))",fontsize=16,color="burlywood",shape="box"];11782[label="vyv302000/Succ vyv3020000",fontsize=10,color="white",style="solid",shape="box"];10464 -> 11782[label="",style="solid", color="burlywood", weight=9]; 11782 -> 10507[label="",style="solid", color="burlywood", weight=3]; 11783[label="vyv302000/Zero",fontsize=10,color="white",style="solid",shape="box"];10464 -> 11783[label="",style="solid", color="burlywood", weight=9]; 11783 -> 10508[label="",style="solid", color="burlywood", weight=3]; 10465[label="Succ (Succ vyv302000)",fontsize=16,color="green",shape="box"];11024 -> 11340[label="",style="dashed", color="red", weight=0]; 11024[label="primDivNatS0 (Succ vyv633000) (Succ vyv646000) (primGEqNatS vyv633000 vyv646000)",fontsize=16,color="magenta"];11024 -> 11341[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11342[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11343[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11344[label="",style="dashed", color="magenta", weight=3]; 11025[label="primDivNatS0 (Succ vyv633000) Zero True",fontsize=16,color="black",shape="box"];11025 -> 11033[label="",style="solid", color="black", weight=3]; 11026[label="primDivNatS0 Zero (Succ vyv646000) False",fontsize=16,color="black",shape="box"];11026 -> 11034[label="",style="solid", color="black", weight=3]; 11027[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];11027 -> 11035[label="",style="solid", color="black", weight=3]; 10434[label="primDivNatS0 (Succ vyv5870) (Succ Zero) (primGEqNatS (Succ vyv5870) (Succ Zero))",fontsize=16,color="black",shape="box"];10434 -> 10456[label="",style="solid", color="black", weight=3]; 10435[label="primDivNatS0 Zero (Succ Zero) (primGEqNatS Zero (Succ Zero))",fontsize=16,color="black",shape="box"];10435 -> 10457[label="",style="solid", color="black", weight=3]; 10472[label="Neg (primPlusNat (Succ vyv599) vyv6020)",fontsize=16,color="green",shape="box"];10472 -> 10546[label="",style="dashed", color="green", weight=3]; 10473[label="primMinusNat vyv6020 (Succ vyv599)",fontsize=16,color="burlywood",shape="box"];11784[label="vyv6020/Succ vyv60200",fontsize=10,color="white",style="solid",shape="box"];10473 -> 11784[label="",style="solid", color="burlywood", weight=9]; 11784 -> 10547[label="",style="solid", color="burlywood", weight=3]; 11785[label="vyv6020/Zero",fontsize=10,color="white",style="solid",shape="box"];10473 -> 11785[label="",style="solid", color="burlywood", weight=9]; 11785 -> 10548[label="",style="solid", color="burlywood", weight=3]; 10486[label="vyv597",fontsize=16,color="green",shape="box"];10487[label="vyv598",fontsize=16,color="green",shape="box"];10488[label="vyv597",fontsize=16,color="green",shape="box"];10489[label="vyv598",fontsize=16,color="green",shape="box"];10490[label="vyv597",fontsize=16,color="green",shape="box"];10491[label="vyv598",fontsize=16,color="green",shape="box"];10492[label="vyv597",fontsize=16,color="green",shape="box"];10493[label="vyv598",fontsize=16,color="green",shape="box"];10494[label="vyv597",fontsize=16,color="green",shape="box"];10495[label="vyv598",fontsize=16,color="green",shape="box"];10565[label="primMinusNat vyv587 vyv60300",fontsize=16,color="burlywood",shape="triangle"];11786[label="vyv587/Succ vyv5870",fontsize=10,color="white",style="solid",shape="box"];10565 -> 11786[label="",style="solid", color="burlywood", weight=9]; 11786 -> 10597[label="",style="solid", color="burlywood", weight=3]; 11787[label="vyv587/Zero",fontsize=10,color="white",style="solid",shape="box"];10565 -> 11787[label="",style="solid", color="burlywood", weight=9]; 11787 -> 10598[label="",style="solid", color="burlywood", weight=3]; 10566[label="Pos (Succ vyv587)",fontsize=16,color="green",shape="box"];10567[label="Succ vyv587",fontsize=16,color="green",shape="box"];10568[label="vyv6030",fontsize=16,color="green",shape="box"];10499[label="Pos (Succ vyv60000)",fontsize=16,color="green",shape="box"];10430[label="primEqInt vyv6010 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];11788[label="vyv6010/Pos vyv60100",fontsize=10,color="white",style="solid",shape="box"];10430 -> 11788[label="",style="solid", color="burlywood", weight=9]; 11788 -> 10474[label="",style="solid", color="burlywood", weight=3]; 11789[label="vyv6010/Neg vyv60100",fontsize=10,color="white",style="solid",shape="box"];10430 -> 11789[label="",style="solid", color="burlywood", weight=9]; 11789 -> 10475[label="",style="solid", color="burlywood", weight=3]; 10500[label="Pos Zero",fontsize=16,color="green",shape="box"];10501[label="Neg (Succ vyv60000)",fontsize=16,color="green",shape="box"];10502[label="Neg Zero",fontsize=16,color="green",shape="box"];10541 -> 10445[label="",style="dashed", color="red", weight=0]; 10541[label="vyv598 * vyv597",fontsize=16,color="magenta"];10541 -> 10577[label="",style="dashed", color="magenta", weight=3]; 10541 -> 10578[label="",style="dashed", color="magenta", weight=3]; 10542 -> 10446[label="",style="dashed", color="red", weight=0]; 10542[label="vyv598 * vyv597",fontsize=16,color="magenta"];10542 -> 10579[label="",style="dashed", color="magenta", weight=3]; 10542 -> 10580[label="",style="dashed", color="magenta", weight=3]; 10543 -> 10447[label="",style="dashed", color="red", weight=0]; 10543[label="vyv598 * vyv597",fontsize=16,color="magenta"];10543 -> 10581[label="",style="dashed", color="magenta", weight=3]; 10543 -> 10582[label="",style="dashed", color="magenta", weight=3]; 10544 -> 10448[label="",style="dashed", color="red", weight=0]; 10544[label="vyv598 * vyv597",fontsize=16,color="magenta"];10544 -> 10583[label="",style="dashed", color="magenta", weight=3]; 10544 -> 10584[label="",style="dashed", color="magenta", weight=3]; 10545 -> 10449[label="",style="dashed", color="red", weight=0]; 10545[label="vyv598 * vyv597",fontsize=16,color="magenta"];10545 -> 10585[label="",style="dashed", color="magenta", weight=3]; 10545 -> 10586[label="",style="dashed", color="magenta", weight=3]; 10569[label="reduce (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="black",shape="box"];10569 -> 10599[label="",style="solid", color="black", weight=3]; 10570[label="primMulDouble (Double vyv5860 vyv5861) (Double vyv5850 vyv5851)",fontsize=16,color="black",shape="box"];10570 -> 10600[label="",style="solid", color="black", weight=3]; 10571[label="primMulInt (Pos vyv5860) (Pos vyv5850)",fontsize=16,color="black",shape="box"];10571 -> 10601[label="",style="solid", color="black", weight=3]; 10572[label="primMulInt (Pos vyv5860) (Neg vyv5850)",fontsize=16,color="black",shape="box"];10572 -> 10602[label="",style="solid", color="black", weight=3]; 10573[label="primMulInt (Neg vyv5860) (Pos vyv5850)",fontsize=16,color="black",shape="box"];10573 -> 10603[label="",style="solid", color="black", weight=3]; 10574[label="primMulInt (Neg vyv5860) (Neg vyv5850)",fontsize=16,color="black",shape="box"];10574 -> 10604[label="",style="solid", color="black", weight=3]; 10575[label="Integer (primMulInt vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10575 -> 10605[label="",style="dashed", color="green", weight=3]; 10576[label="primMulFloat (Float vyv5860 vyv5861) (Float vyv5850 vyv5851)",fontsize=16,color="black",shape="box"];10576 -> 10606[label="",style="solid", color="black", weight=3]; 10758[label="vyv6290",fontsize=16,color="green",shape="box"];10761 -> 10765[label="",style="dashed", color="red", weight=0]; 10761[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10761 -> 10766[label="",style="dashed", color="magenta", weight=3]; 10761 -> 10767[label="",style="dashed", color="magenta", weight=3]; 10761 -> 10768[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10772[label="",style="dashed", color="red", weight=0]; 10762[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10762 -> 10773[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10774[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10775[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10765[label="",style="dashed", color="red", weight=0]; 10763[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10763 -> 10769[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10770[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10771[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10772[label="",style="dashed", color="red", weight=0]; 10764[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10764 -> 10776[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10777[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10778[label="",style="dashed", color="magenta", weight=3]; 10507[label="primMulNat (Succ vyv3020000) (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="black",shape="box"];10507 -> 10607[label="",style="solid", color="black", weight=3]; 10508[label="primMulNat Zero (Succ (Succ Zero))",fontsize=16,color="black",shape="box"];10508 -> 10608[label="",style="solid", color="black", weight=3]; 11341[label="vyv646000",fontsize=16,color="green",shape="box"];11342[label="vyv646000",fontsize=16,color="green",shape="box"];11343[label="vyv633000",fontsize=16,color="green",shape="box"];11344[label="vyv633000",fontsize=16,color="green",shape="box"];11340[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS vyv678 vyv679)",fontsize=16,color="burlywood",shape="triangle"];11790[label="vyv678/Succ vyv6780",fontsize=10,color="white",style="solid",shape="box"];11340 -> 11790[label="",style="solid", color="burlywood", weight=9]; 11790 -> 11377[label="",style="solid", color="burlywood", weight=3]; 11791[label="vyv678/Zero",fontsize=10,color="white",style="solid",shape="box"];11340 -> 11791[label="",style="solid", color="burlywood", weight=9]; 11791 -> 11378[label="",style="solid", color="burlywood", weight=3]; 11033[label="Succ (primDivNatS (primMinusNatS (Succ vyv633000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];11033 -> 11049[label="",style="dashed", color="green", weight=3]; 11034[label="Zero",fontsize=16,color="green",shape="box"];11035[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];11035 -> 11050[label="",style="dashed", color="green", weight=3]; 10456 -> 11340[label="",style="dashed", color="red", weight=0]; 10456[label="primDivNatS0 (Succ vyv5870) (Succ Zero) (primGEqNatS vyv5870 Zero)",fontsize=16,color="magenta"];10456 -> 11345[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11346[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11347[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11348[label="",style="dashed", color="magenta", weight=3]; 10457[label="primDivNatS0 Zero (Succ Zero) False",fontsize=16,color="black",shape="box"];10457 -> 10498[label="",style="solid", color="black", weight=3]; 10546 -> 94[label="",style="dashed", color="red", weight=0]; 10546[label="primPlusNat (Succ vyv599) vyv6020",fontsize=16,color="magenta"];10546 -> 10609[label="",style="dashed", color="magenta", weight=3]; 10546 -> 10610[label="",style="dashed", color="magenta", weight=3]; 10547[label="primMinusNat (Succ vyv60200) (Succ vyv599)",fontsize=16,color="black",shape="box"];10547 -> 10611[label="",style="solid", color="black", weight=3]; 10548[label="primMinusNat Zero (Succ vyv599)",fontsize=16,color="black",shape="box"];10548 -> 10612[label="",style="solid", color="black", weight=3]; 10597[label="primMinusNat (Succ vyv5870) vyv60300",fontsize=16,color="burlywood",shape="box"];11792[label="vyv60300/Succ vyv603000",fontsize=10,color="white",style="solid",shape="box"];10597 -> 11792[label="",style="solid", color="burlywood", weight=9]; 11792 -> 10640[label="",style="solid", color="burlywood", weight=3]; 11793[label="vyv60300/Zero",fontsize=10,color="white",style="solid",shape="box"];10597 -> 11793[label="",style="solid", color="burlywood", weight=9]; 11793 -> 10641[label="",style="solid", color="burlywood", weight=3]; 10598[label="primMinusNat Zero vyv60300",fontsize=16,color="burlywood",shape="box"];11794[label="vyv60300/Succ vyv603000",fontsize=10,color="white",style="solid",shape="box"];10598 -> 11794[label="",style="solid", color="burlywood", weight=9]; 11794 -> 10642[label="",style="solid", color="burlywood", weight=3]; 11795[label="vyv60300/Zero",fontsize=10,color="white",style="solid",shape="box"];10598 -> 11795[label="",style="solid", color="burlywood", weight=9]; 11795 -> 10643[label="",style="solid", color="burlywood", weight=3]; 10474[label="primEqInt (Pos vyv60100) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];11796[label="vyv60100/Succ vyv601000",fontsize=10,color="white",style="solid",shape="box"];10474 -> 11796[label="",style="solid", color="burlywood", weight=9]; 11796 -> 10551[label="",style="solid", color="burlywood", weight=3]; 11797[label="vyv60100/Zero",fontsize=10,color="white",style="solid",shape="box"];10474 -> 11797[label="",style="solid", color="burlywood", weight=9]; 11797 -> 10552[label="",style="solid", color="burlywood", weight=3]; 10475[label="primEqInt (Neg vyv60100) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];11798[label="vyv60100/Succ vyv601000",fontsize=10,color="white",style="solid",shape="box"];10475 -> 11798[label="",style="solid", color="burlywood", weight=9]; 11798 -> 10553[label="",style="solid", color="burlywood", weight=3]; 11799[label="vyv60100/Zero",fontsize=10,color="white",style="solid",shape="box"];10475 -> 11799[label="",style="solid", color="burlywood", weight=9]; 11799 -> 10554[label="",style="solid", color="burlywood", weight=3]; 10577[label="vyv597",fontsize=16,color="green",shape="box"];10578[label="vyv598",fontsize=16,color="green",shape="box"];10579[label="vyv597",fontsize=16,color="green",shape="box"];10580[label="vyv598",fontsize=16,color="green",shape="box"];10581[label="vyv597",fontsize=16,color="green",shape="box"];10582[label="vyv598",fontsize=16,color="green",shape="box"];10583[label="vyv597",fontsize=16,color="green",shape="box"];10584[label="vyv598",fontsize=16,color="green",shape="box"];10585[label="vyv597",fontsize=16,color="green",shape="box"];10586[label="vyv598",fontsize=16,color="green",shape="box"];10599[label="reduce2 (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="black",shape="box"];10599 -> 10644[label="",style="solid", color="black", weight=3]; 10600[label="Double (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="green",shape="box"];10600 -> 10645[label="",style="dashed", color="green", weight=3]; 10600 -> 10646[label="",style="dashed", color="green", weight=3]; 10601[label="Pos (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10601 -> 10647[label="",style="dashed", color="green", weight=3]; 10602[label="Neg (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10602 -> 10648[label="",style="dashed", color="green", weight=3]; 10603[label="Neg (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10603 -> 10649[label="",style="dashed", color="green", weight=3]; 10604[label="Pos (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10604 -> 10650[label="",style="dashed", color="green", weight=3]; 10605 -> 10480[label="",style="dashed", color="red", weight=0]; 10605[label="primMulInt vyv5860 vyv5850",fontsize=16,color="magenta"];10605 -> 10651[label="",style="dashed", color="magenta", weight=3]; 10605 -> 10652[label="",style="dashed", color="magenta", weight=3]; 10606[label="Float (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="green",shape="box"];10606 -> 10653[label="",style="dashed", color="green", weight=3]; 10606 -> 10654[label="",style="dashed", color="green", weight=3]; 10766 -> 10448[label="",style="dashed", color="red", weight=0]; 10766[label="vyv626 * vyv627",fontsize=16,color="magenta"];10766 -> 10779[label="",style="dashed", color="magenta", weight=3]; 10766 -> 10780[label="",style="dashed", color="magenta", weight=3]; 10767 -> 10448[label="",style="dashed", color="red", weight=0]; 10767[label="vyv624 * vyv625",fontsize=16,color="magenta"];10767 -> 10781[label="",style="dashed", color="magenta", weight=3]; 10767 -> 10782[label="",style="dashed", color="magenta", weight=3]; 10768 -> 10448[label="",style="dashed", color="red", weight=0]; 10768[label="vyv624 * vyv625",fontsize=16,color="magenta"];10768 -> 10783[label="",style="dashed", color="magenta", weight=3]; 10768 -> 10784[label="",style="dashed", color="magenta", weight=3]; 10765[label="vyv630 `quot` reduce2D vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11800[label="vyv630/Integer vyv6300",fontsize=10,color="white",style="solid",shape="box"];10765 -> 11800[label="",style="solid", color="burlywood", weight=9]; 11800 -> 10785[label="",style="solid", color="burlywood", weight=3]; 10773 -> 10447[label="",style="dashed", color="red", weight=0]; 10773[label="vyv624 * vyv625",fontsize=16,color="magenta"];10773 -> 10786[label="",style="dashed", color="magenta", weight=3]; 10773 -> 10787[label="",style="dashed", color="magenta", weight=3]; 10774 -> 10447[label="",style="dashed", color="red", weight=0]; 10774[label="vyv626 * vyv627",fontsize=16,color="magenta"];10774 -> 10788[label="",style="dashed", color="magenta", weight=3]; 10774 -> 10789[label="",style="dashed", color="magenta", weight=3]; 10775 -> 10447[label="",style="dashed", color="red", weight=0]; 10775[label="vyv624 * vyv625",fontsize=16,color="magenta"];10775 -> 10790[label="",style="dashed", color="magenta", weight=3]; 10775 -> 10791[label="",style="dashed", color="magenta", weight=3]; 10772[label="vyv633 `quot` reduce2D vyv635 vyv634",fontsize=16,color="black",shape="triangle"];10772 -> 10792[label="",style="solid", color="black", weight=3]; 10769 -> 10448[label="",style="dashed", color="red", weight=0]; 10769[label="vyv626 * vyv627",fontsize=16,color="magenta"];10769 -> 10793[label="",style="dashed", color="magenta", weight=3]; 10769 -> 10794[label="",style="dashed", color="magenta", weight=3]; 10770 -> 10448[label="",style="dashed", color="red", weight=0]; 10770[label="vyv624 * vyv625",fontsize=16,color="magenta"];10770 -> 10795[label="",style="dashed", color="magenta", weight=3]; 10770 -> 10796[label="",style="dashed", color="magenta", weight=3]; 10771 -> 10448[label="",style="dashed", color="red", weight=0]; 10771[label="vyv626 * vyv627",fontsize=16,color="magenta"];10771 -> 10797[label="",style="dashed", color="magenta", weight=3]; 10771 -> 10798[label="",style="dashed", color="magenta", weight=3]; 10776 -> 10447[label="",style="dashed", color="red", weight=0]; 10776[label="vyv624 * vyv625",fontsize=16,color="magenta"];10776 -> 10799[label="",style="dashed", color="magenta", weight=3]; 10776 -> 10800[label="",style="dashed", color="magenta", weight=3]; 10777 -> 10447[label="",style="dashed", color="red", weight=0]; 10777[label="vyv626 * vyv627",fontsize=16,color="magenta"];10777 -> 10801[label="",style="dashed", color="magenta", weight=3]; 10777 -> 10802[label="",style="dashed", color="magenta", weight=3]; 10778 -> 10447[label="",style="dashed", color="red", weight=0]; 10778[label="vyv626 * vyv627",fontsize=16,color="magenta"];10778 -> 10803[label="",style="dashed", color="magenta", weight=3]; 10778 -> 10804[label="",style="dashed", color="magenta", weight=3]; 10607 -> 94[label="",style="dashed", color="red", weight=0]; 10607[label="primPlusNat (primMulNat vyv3020000 (Succ (Succ (Succ vyv3020000)))) (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="magenta"];10607 -> 10655[label="",style="dashed", color="magenta", weight=3]; 10607 -> 10656[label="",style="dashed", color="magenta", weight=3]; 10608[label="Zero",fontsize=16,color="green",shape="box"];11377[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) vyv679)",fontsize=16,color="burlywood",shape="box"];11801[label="vyv679/Succ vyv6790",fontsize=10,color="white",style="solid",shape="box"];11377 -> 11801[label="",style="solid", color="burlywood", weight=9]; 11801 -> 11385[label="",style="solid", color="burlywood", weight=3]; 11802[label="vyv679/Zero",fontsize=10,color="white",style="solid",shape="box"];11377 -> 11802[label="",style="solid", color="burlywood", weight=9]; 11802 -> 11386[label="",style="solid", color="burlywood", weight=3]; 11378[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero vyv679)",fontsize=16,color="burlywood",shape="box"];11803[label="vyv679/Succ vyv6790",fontsize=10,color="white",style="solid",shape="box"];11378 -> 11803[label="",style="solid", color="burlywood", weight=9]; 11803 -> 11387[label="",style="solid", color="burlywood", weight=3]; 11804[label="vyv679/Zero",fontsize=10,color="white",style="solid",shape="box"];11378 -> 11804[label="",style="solid", color="burlywood", weight=9]; 11804 -> 11388[label="",style="solid", color="burlywood", weight=3]; 11049 -> 10949[label="",style="dashed", color="red", weight=0]; 11049[label="primDivNatS (primMinusNatS (Succ vyv633000) Zero) (Succ Zero)",fontsize=16,color="magenta"];11049 -> 11059[label="",style="dashed", color="magenta", weight=3]; 11049 -> 11060[label="",style="dashed", color="magenta", weight=3]; 11050 -> 10949[label="",style="dashed", color="red", weight=0]; 11050[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];11050 -> 11061[label="",style="dashed", color="magenta", weight=3]; 11050 -> 11062[label="",style="dashed", color="magenta", weight=3]; 11345[label="Zero",fontsize=16,color="green",shape="box"];11346[label="Zero",fontsize=16,color="green",shape="box"];11347[label="vyv5870",fontsize=16,color="green",shape="box"];11348[label="vyv5870",fontsize=16,color="green",shape="box"];10498[label="Zero",fontsize=16,color="green",shape="box"];10609[label="Succ vyv599",fontsize=16,color="green",shape="box"];10610[label="vyv6020",fontsize=16,color="green",shape="box"];10611 -> 10565[label="",style="dashed", color="red", weight=0]; 10611[label="primMinusNat vyv60200 vyv599",fontsize=16,color="magenta"];10611 -> 10657[label="",style="dashed", color="magenta", weight=3]; 10611 -> 10658[label="",style="dashed", color="magenta", weight=3]; 10612[label="Neg (Succ vyv599)",fontsize=16,color="green",shape="box"];10640[label="primMinusNat (Succ vyv5870) (Succ vyv603000)",fontsize=16,color="black",shape="box"];10640 -> 10670[label="",style="solid", color="black", weight=3]; 10641[label="primMinusNat (Succ vyv5870) Zero",fontsize=16,color="black",shape="box"];10641 -> 10671[label="",style="solid", color="black", weight=3]; 10642[label="primMinusNat Zero (Succ vyv603000)",fontsize=16,color="black",shape="box"];10642 -> 10672[label="",style="solid", color="black", weight=3]; 10643[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];10643 -> 10673[label="",style="solid", color="black", weight=3]; 10551[label="primEqInt (Pos (Succ vyv601000)) (Pos Zero)",fontsize=16,color="black",shape="box"];10551 -> 10615[label="",style="solid", color="black", weight=3]; 10552[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];10552 -> 10616[label="",style="solid", color="black", weight=3]; 10553[label="primEqInt (Neg (Succ vyv601000)) (Pos Zero)",fontsize=16,color="black",shape="box"];10553 -> 10617[label="",style="solid", color="black", weight=3]; 10554[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];10554 -> 10618[label="",style="solid", color="black", weight=3]; 10644 -> 10674[label="",style="dashed", color="red", weight=0]; 10644[label="reduce2Reduce1 (vyv5860 * vyv5850) (vyv5861 * vyv5851) (vyv5860 * vyv5850) (vyv5861 * vyv5851) (vyv5861 * vyv5851 == fromInt (Pos Zero))",fontsize=16,color="magenta"];10644 -> 10685[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10686[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10687[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10688[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10689[label="",style="dashed", color="magenta", weight=3]; 10645 -> 10447[label="",style="dashed", color="red", weight=0]; 10645[label="vyv5860 * vyv5850",fontsize=16,color="magenta"];10645 -> 10700[label="",style="dashed", color="magenta", weight=3]; 10645 -> 10701[label="",style="dashed", color="magenta", weight=3]; 10646 -> 10447[label="",style="dashed", color="red", weight=0]; 10646[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10646 -> 10702[label="",style="dashed", color="magenta", weight=3]; 10646 -> 10703[label="",style="dashed", color="magenta", weight=3]; 10647[label="primMulNat vyv5860 vyv5850",fontsize=16,color="burlywood",shape="triangle"];11805[label="vyv5860/Succ vyv58600",fontsize=10,color="white",style="solid",shape="box"];10647 -> 11805[label="",style="solid", color="burlywood", weight=9]; 11805 -> 10704[label="",style="solid", color="burlywood", weight=3]; 11806[label="vyv5860/Zero",fontsize=10,color="white",style="solid",shape="box"];10647 -> 11806[label="",style="solid", color="burlywood", weight=9]; 11806 -> 10705[label="",style="solid", color="burlywood", weight=3]; 10648 -> 10647[label="",style="dashed", color="red", weight=0]; 10648[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10648 -> 10706[label="",style="dashed", color="magenta", weight=3]; 10649 -> 10647[label="",style="dashed", color="red", weight=0]; 10649[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10649 -> 10707[label="",style="dashed", color="magenta", weight=3]; 10650 -> 10647[label="",style="dashed", color="red", weight=0]; 10650[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10650 -> 10708[label="",style="dashed", color="magenta", weight=3]; 10650 -> 10709[label="",style="dashed", color="magenta", weight=3]; 10651[label="vyv5850",fontsize=16,color="green",shape="box"];10652[label="vyv5860",fontsize=16,color="green",shape="box"];10653 -> 10447[label="",style="dashed", color="red", weight=0]; 10653[label="vyv5860 * vyv5850",fontsize=16,color="magenta"];10653 -> 10710[label="",style="dashed", color="magenta", weight=3]; 10653 -> 10711[label="",style="dashed", color="magenta", weight=3]; 10654 -> 10447[label="",style="dashed", color="red", weight=0]; 10654[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10654 -> 10712[label="",style="dashed", color="magenta", weight=3]; 10654 -> 10713[label="",style="dashed", color="magenta", weight=3]; 10779[label="vyv627",fontsize=16,color="green",shape="box"];10780[label="vyv626",fontsize=16,color="green",shape="box"];10781[label="vyv625",fontsize=16,color="green",shape="box"];10782[label="vyv624",fontsize=16,color="green",shape="box"];10783[label="vyv625",fontsize=16,color="green",shape="box"];10784[label="vyv624",fontsize=16,color="green",shape="box"];10785[label="Integer vyv6300 `quot` reduce2D vyv632 vyv631",fontsize=16,color="black",shape="box"];10785 -> 10805[label="",style="solid", color="black", weight=3]; 10786[label="vyv625",fontsize=16,color="green",shape="box"];10787[label="vyv624",fontsize=16,color="green",shape="box"];10788[label="vyv627",fontsize=16,color="green",shape="box"];10789[label="vyv626",fontsize=16,color="green",shape="box"];10790[label="vyv625",fontsize=16,color="green",shape="box"];10791[label="vyv624",fontsize=16,color="green",shape="box"];10792[label="primQuotInt vyv633 (reduce2D vyv635 vyv634)",fontsize=16,color="burlywood",shape="box"];11807[label="vyv633/Pos vyv6330",fontsize=10,color="white",style="solid",shape="box"];10792 -> 11807[label="",style="solid", color="burlywood", weight=9]; 11807 -> 10806[label="",style="solid", color="burlywood", weight=3]; 11808[label="vyv633/Neg vyv6330",fontsize=10,color="white",style="solid",shape="box"];10792 -> 11808[label="",style="solid", color="burlywood", weight=9]; 11808 -> 10807[label="",style="solid", color="burlywood", weight=3]; 10793[label="vyv627",fontsize=16,color="green",shape="box"];10794[label="vyv626",fontsize=16,color="green",shape="box"];10795[label="vyv625",fontsize=16,color="green",shape="box"];10796[label="vyv624",fontsize=16,color="green",shape="box"];10797[label="vyv627",fontsize=16,color="green",shape="box"];10798[label="vyv626",fontsize=16,color="green",shape="box"];10799[label="vyv625",fontsize=16,color="green",shape="box"];10800[label="vyv624",fontsize=16,color="green",shape="box"];10801[label="vyv627",fontsize=16,color="green",shape="box"];10802[label="vyv626",fontsize=16,color="green",shape="box"];10803[label="vyv627",fontsize=16,color="green",shape="box"];10804[label="vyv626",fontsize=16,color="green",shape="box"];10655 -> 10647[label="",style="dashed", color="red", weight=0]; 10655[label="primMulNat vyv3020000 (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="magenta"];10655 -> 10714[label="",style="dashed", color="magenta", weight=3]; 10655 -> 10715[label="",style="dashed", color="magenta", weight=3]; 10656[label="Succ (Succ (Succ vyv3020000))",fontsize=16,color="green",shape="box"];11385[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) (Succ vyv6790))",fontsize=16,color="black",shape="box"];11385 -> 11395[label="",style="solid", color="black", weight=3]; 11386[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) Zero)",fontsize=16,color="black",shape="box"];11386 -> 11396[label="",style="solid", color="black", weight=3]; 11387[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero (Succ vyv6790))",fontsize=16,color="black",shape="box"];11387 -> 11397[label="",style="solid", color="black", weight=3]; 11388[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11388 -> 11398[label="",style="solid", color="black", weight=3]; 11059[label="primMinusNatS (Succ vyv633000) Zero",fontsize=16,color="black",shape="triangle"];11059 -> 11076[label="",style="solid", color="black", weight=3]; 11060[label="Zero",fontsize=16,color="green",shape="box"];11061[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];11061 -> 11077[label="",style="solid", color="black", weight=3]; 11062[label="Zero",fontsize=16,color="green",shape="box"];10657[label="vyv60200",fontsize=16,color="green",shape="box"];10658[label="vyv599",fontsize=16,color="green",shape="box"];10670 -> 10565[label="",style="dashed", color="red", weight=0]; 10670[label="primMinusNat vyv5870 vyv603000",fontsize=16,color="magenta"];10670 -> 10718[label="",style="dashed", color="magenta", weight=3]; 10670 -> 10719[label="",style="dashed", color="magenta", weight=3]; 10671[label="Pos (Succ vyv5870)",fontsize=16,color="green",shape="box"];10672[label="Neg (Succ vyv603000)",fontsize=16,color="green",shape="box"];10673[label="Pos Zero",fontsize=16,color="green",shape="box"];10615[label="False",fontsize=16,color="green",shape="box"];10616[label="True",fontsize=16,color="green",shape="box"];10617[label="False",fontsize=16,color="green",shape="box"];10618[label="True",fontsize=16,color="green",shape="box"];10685[label="vyv5850",fontsize=16,color="green",shape="box"];10686[label="vyv5851",fontsize=16,color="green",shape="box"];10687[label="vyv5861",fontsize=16,color="green",shape="box"];10688[label="vyv5860",fontsize=16,color="green",shape="box"];10689[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];11809[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];10689 -> 11809[label="",style="solid", color="blue", weight=9]; 11809 -> 10720[label="",style="solid", color="blue", weight=3]; 11810[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];10689 -> 11810[label="",style="solid", color="blue", weight=9]; 11810 -> 10721[label="",style="solid", color="blue", weight=3]; 10700[label="vyv5850",fontsize=16,color="green",shape="box"];10701[label="vyv5860",fontsize=16,color="green",shape="box"];10702[label="vyv5851",fontsize=16,color="green",shape="box"];10703[label="vyv5861",fontsize=16,color="green",shape="box"];10704[label="primMulNat (Succ vyv58600) vyv5850",fontsize=16,color="burlywood",shape="box"];11811[label="vyv5850/Succ vyv58500",fontsize=10,color="white",style="solid",shape="box"];10704 -> 11811[label="",style="solid", color="burlywood", weight=9]; 11811 -> 10733[label="",style="solid", color="burlywood", weight=3]; 11812[label="vyv5850/Zero",fontsize=10,color="white",style="solid",shape="box"];10704 -> 11812[label="",style="solid", color="burlywood", weight=9]; 11812 -> 10734[label="",style="solid", color="burlywood", weight=3]; 10705[label="primMulNat Zero vyv5850",fontsize=16,color="burlywood",shape="box"];11813[label="vyv5850/Succ vyv58500",fontsize=10,color="white",style="solid",shape="box"];10705 -> 11813[label="",style="solid", color="burlywood", weight=9]; 11813 -> 10735[label="",style="solid", color="burlywood", weight=3]; 11814[label="vyv5850/Zero",fontsize=10,color="white",style="solid",shape="box"];10705 -> 11814[label="",style="solid", color="burlywood", weight=9]; 11814 -> 10736[label="",style="solid", color="burlywood", weight=3]; 10706[label="vyv5850",fontsize=16,color="green",shape="box"];10707[label="vyv5860",fontsize=16,color="green",shape="box"];10708[label="vyv5850",fontsize=16,color="green",shape="box"];10709[label="vyv5860",fontsize=16,color="green",shape="box"];10710[label="vyv5850",fontsize=16,color="green",shape="box"];10711[label="vyv5860",fontsize=16,color="green",shape="box"];10712[label="vyv5851",fontsize=16,color="green",shape="box"];10713[label="vyv5861",fontsize=16,color="green",shape="box"];10805 -> 10863[label="",style="dashed", color="red", weight=0]; 10805[label="Integer vyv6300 `quot` gcd vyv632 vyv631",fontsize=16,color="magenta"];10805 -> 10864[label="",style="dashed", color="magenta", weight=3]; 10806[label="primQuotInt (Pos vyv6330) (reduce2D vyv635 vyv634)",fontsize=16,color="black",shape="box"];10806 -> 10809[label="",style="solid", color="black", weight=3]; 10807[label="primQuotInt (Neg vyv6330) (reduce2D vyv635 vyv634)",fontsize=16,color="black",shape="box"];10807 -> 10810[label="",style="solid", color="black", weight=3]; 10714[label="Succ (Succ (Succ vyv3020000))",fontsize=16,color="green",shape="box"];10715[label="vyv3020000",fontsize=16,color="green",shape="box"];11395 -> 11340[label="",style="dashed", color="red", weight=0]; 11395[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS vyv6780 vyv6790)",fontsize=16,color="magenta"];11395 -> 11405[label="",style="dashed", color="magenta", weight=3]; 11395 -> 11406[label="",style="dashed", color="magenta", weight=3]; 11396[label="primDivNatS0 (Succ vyv676) (Succ vyv677) True",fontsize=16,color="black",shape="triangle"];11396 -> 11407[label="",style="solid", color="black", weight=3]; 11397[label="primDivNatS0 (Succ vyv676) (Succ vyv677) False",fontsize=16,color="black",shape="box"];11397 -> 11408[label="",style="solid", color="black", weight=3]; 11398 -> 11396[label="",style="dashed", color="red", weight=0]; 11398[label="primDivNatS0 (Succ vyv676) (Succ vyv677) True",fontsize=16,color="magenta"];11076[label="Succ vyv633000",fontsize=16,color="green",shape="box"];11077[label="Zero",fontsize=16,color="green",shape="box"];10718[label="vyv5870",fontsize=16,color="green",shape="box"];10719[label="vyv603000",fontsize=16,color="green",shape="box"];10720 -> 10331[label="",style="dashed", color="red", weight=0]; 10720[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10720 -> 10739[label="",style="dashed", color="magenta", weight=3]; 10721 -> 10724[label="",style="dashed", color="red", weight=0]; 10721[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10721 -> 10726[label="",style="dashed", color="magenta", weight=3]; 10733[label="primMulNat (Succ vyv58600) (Succ vyv58500)",fontsize=16,color="black",shape="box"];10733 -> 10745[label="",style="solid", color="black", weight=3]; 10734[label="primMulNat (Succ vyv58600) Zero",fontsize=16,color="black",shape="box"];10734 -> 10746[label="",style="solid", color="black", weight=3]; 10735[label="primMulNat Zero (Succ vyv58500)",fontsize=16,color="black",shape="box"];10735 -> 10747[label="",style="solid", color="black", weight=3]; 10736[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];10736 -> 10748[label="",style="solid", color="black", weight=3]; 10864[label="gcd vyv632 vyv631",fontsize=16,color="black",shape="box"];10864 -> 10877[label="",style="solid", color="black", weight=3]; 10863[label="Integer vyv6300 `quot` vyv643",fontsize=16,color="burlywood",shape="triangle"];11815[label="vyv643/Integer vyv6430",fontsize=10,color="white",style="solid",shape="box"];10863 -> 11815[label="",style="solid", color="burlywood", weight=9]; 11815 -> 10878[label="",style="solid", color="burlywood", weight=3]; 10809 -> 10895[label="",style="dashed", color="red", weight=0]; 10809[label="primQuotInt (Pos vyv6330) (gcd vyv635 vyv634)",fontsize=16,color="magenta"];10809 -> 10904[label="",style="dashed", color="magenta", weight=3]; 10810[label="primQuotInt (Neg vyv6330) (gcd vyv635 vyv634)",fontsize=16,color="black",shape="box"];10810 -> 10813[label="",style="solid", color="black", weight=3]; 11405[label="vyv6790",fontsize=16,color="green",shape="box"];11406[label="vyv6780",fontsize=16,color="green",shape="box"];11407[label="Succ (primDivNatS (primMinusNatS (Succ vyv676) (Succ vyv677)) (Succ (Succ vyv677)))",fontsize=16,color="green",shape="box"];11407 -> 11417[label="",style="dashed", color="green", weight=3]; 11408[label="Zero",fontsize=16,color="green",shape="box"];10739 -> 10447[label="",style="dashed", color="red", weight=0]; 10739[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10739 -> 10750[label="",style="dashed", color="magenta", weight=3]; 10739 -> 10751[label="",style="dashed", color="magenta", weight=3]; 10726 -> 10448[label="",style="dashed", color="red", weight=0]; 10726[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10726 -> 10740[label="",style="dashed", color="magenta", weight=3]; 10726 -> 10741[label="",style="dashed", color="magenta", weight=3]; 10745 -> 94[label="",style="dashed", color="red", weight=0]; 10745[label="primPlusNat (primMulNat vyv58600 (Succ vyv58500)) (Succ vyv58500)",fontsize=16,color="magenta"];10745 -> 10754[label="",style="dashed", color="magenta", weight=3]; 10745 -> 10755[label="",style="dashed", color="magenta", weight=3]; 10746[label="Zero",fontsize=16,color="green",shape="box"];10747[label="Zero",fontsize=16,color="green",shape="box"];10748[label="Zero",fontsize=16,color="green",shape="box"];10877[label="gcd3 vyv632 vyv631",fontsize=16,color="black",shape="box"];10877 -> 10885[label="",style="solid", color="black", weight=3]; 10878[label="Integer vyv6300 `quot` Integer vyv6430",fontsize=16,color="black",shape="box"];10878 -> 10886[label="",style="solid", color="black", weight=3]; 10904[label="gcd vyv635 vyv634",fontsize=16,color="black",shape="box"];10904 -> 10920[label="",style="solid", color="black", weight=3]; 10813[label="primQuotInt (Neg vyv6330) (gcd3 vyv635 vyv634)",fontsize=16,color="black",shape="box"];10813 -> 10817[label="",style="solid", color="black", weight=3]; 11417 -> 10949[label="",style="dashed", color="red", weight=0]; 11417[label="primDivNatS (primMinusNatS (Succ vyv676) (Succ vyv677)) (Succ (Succ vyv677))",fontsize=16,color="magenta"];11417 -> 11423[label="",style="dashed", color="magenta", weight=3]; 11417 -> 11424[label="",style="dashed", color="magenta", weight=3]; 10750[label="vyv5851",fontsize=16,color="green",shape="box"];10751[label="vyv5861",fontsize=16,color="green",shape="box"];10740[label="vyv5851",fontsize=16,color="green",shape="box"];10741[label="vyv5861",fontsize=16,color="green",shape="box"];10754 -> 10647[label="",style="dashed", color="red", weight=0]; 10754[label="primMulNat vyv58600 (Succ vyv58500)",fontsize=16,color="magenta"];10754 -> 10759[label="",style="dashed", color="magenta", weight=3]; 10754 -> 10760[label="",style="dashed", color="magenta", weight=3]; 10755[label="Succ vyv58500",fontsize=16,color="green",shape="box"];10885 -> 10889[label="",style="dashed", color="red", weight=0]; 10885[label="gcd2 (vyv632 == fromInt (Pos Zero)) vyv632 vyv631",fontsize=16,color="magenta"];10885 -> 10890[label="",style="dashed", color="magenta", weight=3]; 10886[label="Integer (primQuotInt vyv6300 vyv6430)",fontsize=16,color="green",shape="box"];10886 -> 10891[label="",style="dashed", color="green", weight=3]; 10920[label="gcd3 vyv635 vyv634",fontsize=16,color="black",shape="box"];10920 -> 10935[label="",style="solid", color="black", weight=3]; 10817 -> 10823[label="",style="dashed", color="red", weight=0]; 10817[label="primQuotInt (Neg vyv6330) (gcd2 (vyv635 == fromInt (Pos Zero)) vyv635 vyv634)",fontsize=16,color="magenta"];10817 -> 10824[label="",style="dashed", color="magenta", weight=3]; 11423[label="primMinusNatS (Succ vyv676) (Succ vyv677)",fontsize=16,color="black",shape="box"];11423 -> 11430[label="",style="solid", color="black", weight=3]; 11424[label="Succ vyv677",fontsize=16,color="green",shape="box"];10759[label="Succ vyv58500",fontsize=16,color="green",shape="box"];10760[label="vyv58600",fontsize=16,color="green",shape="box"];10890 -> 10724[label="",style="dashed", color="red", weight=0]; 10890[label="vyv632 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10890 -> 10892[label="",style="dashed", color="magenta", weight=3]; 10889[label="gcd2 vyv645 vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11816[label="vyv645/False",fontsize=10,color="white",style="solid",shape="box"];10889 -> 11816[label="",style="solid", color="burlywood", weight=9]; 11816 -> 10893[label="",style="solid", color="burlywood", weight=3]; 11817[label="vyv645/True",fontsize=10,color="white",style="solid",shape="box"];10889 -> 11817[label="",style="solid", color="burlywood", weight=9]; 11817 -> 10894[label="",style="solid", color="burlywood", weight=3]; 10891[label="primQuotInt vyv6300 vyv6430",fontsize=16,color="burlywood",shape="triangle"];11818[label="vyv6300/Pos vyv63000",fontsize=10,color="white",style="solid",shape="box"];10891 -> 11818[label="",style="solid", color="burlywood", weight=9]; 11818 -> 10921[label="",style="solid", color="burlywood", weight=3]; 11819[label="vyv6300/Neg vyv63000",fontsize=10,color="white",style="solid",shape="box"];10891 -> 11819[label="",style="solid", color="burlywood", weight=9]; 11819 -> 10922[label="",style="solid", color="burlywood", weight=3]; 10935 -> 10947[label="",style="dashed", color="red", weight=0]; 10935[label="gcd2 (vyv635 == fromInt (Pos Zero)) vyv635 vyv634",fontsize=16,color="magenta"];10935 -> 10948[label="",style="dashed", color="magenta", weight=3]; 10824 -> 10331[label="",style="dashed", color="red", weight=0]; 10824[label="vyv635 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10824 -> 10830[label="",style="dashed", color="magenta", weight=3]; 10823[label="primQuotInt (Neg vyv6330) (gcd2 vyv638 vyv635 vyv634)",fontsize=16,color="burlywood",shape="triangle"];11820[label="vyv638/False",fontsize=10,color="white",style="solid",shape="box"];10823 -> 11820[label="",style="solid", color="burlywood", weight=9]; 11820 -> 10831[label="",style="solid", color="burlywood", weight=3]; 11821[label="vyv638/True",fontsize=10,color="white",style="solid",shape="box"];10823 -> 11821[label="",style="solid", color="burlywood", weight=9]; 11821 -> 10832[label="",style="solid", color="burlywood", weight=3]; 11430[label="primMinusNatS vyv676 vyv677",fontsize=16,color="burlywood",shape="triangle"];11822[label="vyv676/Succ vyv6760",fontsize=10,color="white",style="solid",shape="box"];11430 -> 11822[label="",style="solid", color="burlywood", weight=9]; 11822 -> 11439[label="",style="solid", color="burlywood", weight=3]; 11823[label="vyv676/Zero",fontsize=10,color="white",style="solid",shape="box"];11430 -> 11823[label="",style="solid", color="burlywood", weight=9]; 11823 -> 11440[label="",style="solid", color="burlywood", weight=3]; 10892[label="vyv632",fontsize=16,color="green",shape="box"];10893[label="gcd2 False vyv632 vyv631",fontsize=16,color="black",shape="box"];10893 -> 10923[label="",style="solid", color="black", weight=3]; 10894[label="gcd2 True vyv632 vyv631",fontsize=16,color="black",shape="box"];10894 -> 10924[label="",style="solid", color="black", weight=3]; 10921[label="primQuotInt (Pos vyv63000) vyv6430",fontsize=16,color="burlywood",shape="box"];11824[label="vyv6430/Pos vyv64300",fontsize=10,color="white",style="solid",shape="box"];10921 -> 11824[label="",style="solid", color="burlywood", weight=9]; 11824 -> 10936[label="",style="solid", color="burlywood", weight=3]; 11825[label="vyv6430/Neg vyv64300",fontsize=10,color="white",style="solid",shape="box"];10921 -> 11825[label="",style="solid", color="burlywood", weight=9]; 11825 -> 10937[label="",style="solid", color="burlywood", weight=3]; 10922[label="primQuotInt (Neg vyv63000) vyv6430",fontsize=16,color="burlywood",shape="box"];11826[label="vyv6430/Pos vyv64300",fontsize=10,color="white",style="solid",shape="box"];10922 -> 11826[label="",style="solid", color="burlywood", weight=9]; 11826 -> 10938[label="",style="solid", color="burlywood", weight=3]; 11827[label="vyv6430/Neg vyv64300",fontsize=10,color="white",style="solid",shape="box"];10922 -> 11827[label="",style="solid", color="burlywood", weight=9]; 11827 -> 10939[label="",style="solid", color="burlywood", weight=3]; 10948 -> 10331[label="",style="dashed", color="red", weight=0]; 10948[label="vyv635 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10948 -> 10951[label="",style="dashed", color="magenta", weight=3]; 10947[label="gcd2 vyv648 vyv635 vyv634",fontsize=16,color="burlywood",shape="triangle"];11828[label="vyv648/False",fontsize=10,color="white",style="solid",shape="box"];10947 -> 11828[label="",style="solid", color="burlywood", weight=9]; 11828 -> 10952[label="",style="solid", color="burlywood", weight=3]; 11829[label="vyv648/True",fontsize=10,color="white",style="solid",shape="box"];10947 -> 11829[label="",style="solid", color="burlywood", weight=9]; 11829 -> 10953[label="",style="solid", color="burlywood", weight=3]; 10830[label="vyv635",fontsize=16,color="green",shape="box"];10831[label="primQuotInt (Neg vyv6330) (gcd2 False vyv635 vyv634)",fontsize=16,color="black",shape="box"];10831 -> 10838[label="",style="solid", color="black", weight=3]; 10832[label="primQuotInt (Neg vyv6330) (gcd2 True vyv635 vyv634)",fontsize=16,color="black",shape="box"];10832 -> 10839[label="",style="solid", color="black", weight=3]; 11439[label="primMinusNatS (Succ vyv6760) vyv677",fontsize=16,color="burlywood",shape="box"];11830[label="vyv677/Succ vyv6770",fontsize=10,color="white",style="solid",shape="box"];11439 -> 11830[label="",style="solid", color="burlywood", weight=9]; 11830 -> 11449[label="",style="solid", color="burlywood", weight=3]; 11831[label="vyv677/Zero",fontsize=10,color="white",style="solid",shape="box"];11439 -> 11831[label="",style="solid", color="burlywood", weight=9]; 11831 -> 11450[label="",style="solid", color="burlywood", weight=3]; 11440[label="primMinusNatS Zero vyv677",fontsize=16,color="burlywood",shape="box"];11832[label="vyv677/Succ vyv6770",fontsize=10,color="white",style="solid",shape="box"];11440 -> 11832[label="",style="solid", color="burlywood", weight=9]; 11832 -> 11451[label="",style="solid", color="burlywood", weight=3]; 11833[label="vyv677/Zero",fontsize=10,color="white",style="solid",shape="box"];11440 -> 11833[label="",style="solid", color="burlywood", weight=9]; 11833 -> 11452[label="",style="solid", color="burlywood", weight=3]; 10923[label="gcd0 vyv632 vyv631",fontsize=16,color="black",shape="triangle"];10923 -> 10940[label="",style="solid", color="black", weight=3]; 10924 -> 10941[label="",style="dashed", color="red", weight=0]; 10924[label="gcd1 (vyv631 == fromInt (Pos Zero)) vyv632 vyv631",fontsize=16,color="magenta"];10924 -> 10942[label="",style="dashed", color="magenta", weight=3]; 10936[label="primQuotInt (Pos vyv63000) (Pos vyv64300)",fontsize=16,color="burlywood",shape="box"];11834[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10936 -> 11834[label="",style="solid", color="burlywood", weight=9]; 11834 -> 10954[label="",style="solid", color="burlywood", weight=3]; 11835[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10936 -> 11835[label="",style="solid", color="burlywood", weight=9]; 11835 -> 10955[label="",style="solid", color="burlywood", weight=3]; 10937[label="primQuotInt (Pos vyv63000) (Neg vyv64300)",fontsize=16,color="burlywood",shape="box"];11836[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10937 -> 11836[label="",style="solid", color="burlywood", weight=9]; 11836 -> 10956[label="",style="solid", color="burlywood", weight=3]; 11837[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10937 -> 11837[label="",style="solid", color="burlywood", weight=9]; 11837 -> 10957[label="",style="solid", color="burlywood", weight=3]; 10938[label="primQuotInt (Neg vyv63000) (Pos vyv64300)",fontsize=16,color="burlywood",shape="box"];11838[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10938 -> 11838[label="",style="solid", color="burlywood", weight=9]; 11838 -> 10958[label="",style="solid", color="burlywood", weight=3]; 11839[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10938 -> 11839[label="",style="solid", color="burlywood", weight=9]; 11839 -> 10959[label="",style="solid", color="burlywood", weight=3]; 10939[label="primQuotInt (Neg vyv63000) (Neg vyv64300)",fontsize=16,color="burlywood",shape="box"];11840[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10939 -> 11840[label="",style="solid", color="burlywood", weight=9]; 11840 -> 10960[label="",style="solid", color="burlywood", weight=3]; 11841[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10939 -> 11841[label="",style="solid", color="burlywood", weight=9]; 11841 -> 10961[label="",style="solid", color="burlywood", weight=3]; 10951[label="vyv635",fontsize=16,color="green",shape="box"];10952[label="gcd2 False vyv635 vyv634",fontsize=16,color="black",shape="box"];10952 -> 10971[label="",style="solid", color="black", weight=3]; 10953[label="gcd2 True vyv635 vyv634",fontsize=16,color="black",shape="box"];10953 -> 10972[label="",style="solid", color="black", weight=3]; 10838[label="primQuotInt (Neg vyv6330) (gcd0 vyv635 vyv634)",fontsize=16,color="black",shape="box"];10838 -> 10847[label="",style="solid", color="black", weight=3]; 10839 -> 10848[label="",style="dashed", color="red", weight=0]; 10839[label="primQuotInt (Neg vyv6330) (gcd1 (vyv634 == fromInt (Pos Zero)) vyv635 vyv634)",fontsize=16,color="magenta"];10839 -> 10849[label="",style="dashed", color="magenta", weight=3]; 11449[label="primMinusNatS (Succ vyv6760) (Succ vyv6770)",fontsize=16,color="black",shape="box"];11449 -> 11458[label="",style="solid", color="black", weight=3]; 11450[label="primMinusNatS (Succ vyv6760) Zero",fontsize=16,color="black",shape="box"];11450 -> 11459[label="",style="solid", color="black", weight=3]; 11451[label="primMinusNatS Zero (Succ vyv6770)",fontsize=16,color="black",shape="box"];11451 -> 11460[label="",style="solid", color="black", weight=3]; 11452[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];11452 -> 11461[label="",style="solid", color="black", weight=3]; 10940[label="gcd0Gcd' (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];10940 -> 10962[label="",style="solid", color="black", weight=3]; 10942 -> 10724[label="",style="dashed", color="red", weight=0]; 10942[label="vyv631 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10942 -> 10963[label="",style="dashed", color="magenta", weight=3]; 10941[label="gcd1 vyv647 vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11842[label="vyv647/False",fontsize=10,color="white",style="solid",shape="box"];10941 -> 11842[label="",style="solid", color="burlywood", weight=9]; 11842 -> 10964[label="",style="solid", color="burlywood", weight=3]; 11843[label="vyv647/True",fontsize=10,color="white",style="solid",shape="box"];10941 -> 11843[label="",style="solid", color="burlywood", weight=9]; 11843 -> 10965[label="",style="solid", color="burlywood", weight=3]; 10954[label="primQuotInt (Pos vyv63000) (Pos (Succ vyv643000))",fontsize=16,color="black",shape="box"];10954 -> 10973[label="",style="solid", color="black", weight=3]; 10955[label="primQuotInt (Pos vyv63000) (Pos Zero)",fontsize=16,color="black",shape="box"];10955 -> 10974[label="",style="solid", color="black", weight=3]; 10956[label="primQuotInt (Pos vyv63000) (Neg (Succ vyv643000))",fontsize=16,color="black",shape="box"];10956 -> 10975[label="",style="solid", color="black", weight=3]; 10957[label="primQuotInt (Pos vyv63000) (Neg Zero)",fontsize=16,color="black",shape="box"];10957 -> 10976[label="",style="solid", color="black", weight=3]; 10958[label="primQuotInt (Neg vyv63000) (Pos (Succ vyv643000))",fontsize=16,color="black",shape="box"];10958 -> 10977[label="",style="solid", color="black", weight=3]; 10959[label="primQuotInt (Neg vyv63000) (Pos Zero)",fontsize=16,color="black",shape="box"];10959 -> 10978[label="",style="solid", color="black", weight=3]; 10960[label="primQuotInt (Neg vyv63000) (Neg (Succ vyv643000))",fontsize=16,color="black",shape="box"];10960 -> 10979[label="",style="solid", color="black", weight=3]; 10961[label="primQuotInt (Neg vyv63000) (Neg Zero)",fontsize=16,color="black",shape="box"];10961 -> 10980[label="",style="solid", color="black", weight=3]; 10971 -> 10928[label="",style="dashed", color="red", weight=0]; 10971[label="gcd0 vyv635 vyv634",fontsize=16,color="magenta"];10972 -> 10990[label="",style="dashed", color="red", weight=0]; 10972[label="gcd1 (vyv634 == fromInt (Pos Zero)) vyv635 vyv634",fontsize=16,color="magenta"];10972 -> 10991[label="",style="dashed", color="magenta", weight=3]; 10847[label="primQuotInt (Neg vyv6330) (gcd0Gcd' (abs vyv635) (abs vyv634))",fontsize=16,color="black",shape="box"];10847 -> 10857[label="",style="solid", color="black", weight=3]; 10849 -> 10331[label="",style="dashed", color="red", weight=0]; 10849[label="vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10849 -> 10858[label="",style="dashed", color="magenta", weight=3]; 10848[label="primQuotInt (Neg vyv6330) (gcd1 vyv641 vyv635 vyv634)",fontsize=16,color="burlywood",shape="triangle"];11844[label="vyv641/False",fontsize=10,color="white",style="solid",shape="box"];10848 -> 11844[label="",style="solid", color="burlywood", weight=9]; 11844 -> 10859[label="",style="solid", color="burlywood", weight=3]; 11845[label="vyv641/True",fontsize=10,color="white",style="solid",shape="box"];10848 -> 11845[label="",style="solid", color="burlywood", weight=9]; 11845 -> 10860[label="",style="solid", color="burlywood", weight=3]; 11458 -> 11430[label="",style="dashed", color="red", weight=0]; 11458[label="primMinusNatS vyv6760 vyv6770",fontsize=16,color="magenta"];11458 -> 11470[label="",style="dashed", color="magenta", weight=3]; 11458 -> 11471[label="",style="dashed", color="magenta", weight=3]; 11459[label="Succ vyv6760",fontsize=16,color="green",shape="box"];11460[label="Zero",fontsize=16,color="green",shape="box"];11461[label="Zero",fontsize=16,color="green",shape="box"];10962[label="gcd0Gcd'2 (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];10962 -> 10981[label="",style="solid", color="black", weight=3]; 10963[label="vyv631",fontsize=16,color="green",shape="box"];10964[label="gcd1 False vyv632 vyv631",fontsize=16,color="black",shape="box"];10964 -> 10982[label="",style="solid", color="black", weight=3]; 10965[label="gcd1 True vyv632 vyv631",fontsize=16,color="black",shape="box"];10965 -> 10983[label="",style="solid", color="black", weight=3]; 10973[label="Pos (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10973 -> 10994[label="",style="dashed", color="green", weight=3]; 10974 -> 65[label="",style="dashed", color="red", weight=0]; 10974[label="error []",fontsize=16,color="magenta"];10975[label="Neg (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10975 -> 10995[label="",style="dashed", color="green", weight=3]; 10976 -> 65[label="",style="dashed", color="red", weight=0]; 10976[label="error []",fontsize=16,color="magenta"];10977[label="Neg (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10977 -> 10996[label="",style="dashed", color="green", weight=3]; 10978 -> 65[label="",style="dashed", color="red", weight=0]; 10978[label="error []",fontsize=16,color="magenta"];10979[label="Pos (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10979 -> 10997[label="",style="dashed", color="green", weight=3]; 10980 -> 65[label="",style="dashed", color="red", weight=0]; 10980[label="error []",fontsize=16,color="magenta"];10928[label="gcd0 vyv635 vyv634",fontsize=16,color="black",shape="triangle"];10928 -> 10984[label="",style="solid", color="black", weight=3]; 10991 -> 10331[label="",style="dashed", color="red", weight=0]; 10991[label="vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10991 -> 10998[label="",style="dashed", color="magenta", weight=3]; 10990[label="gcd1 vyv650 vyv635 vyv634",fontsize=16,color="burlywood",shape="triangle"];11846[label="vyv650/False",fontsize=10,color="white",style="solid",shape="box"];10990 -> 11846[label="",style="solid", color="burlywood", weight=9]; 11846 -> 10999[label="",style="solid", color="burlywood", weight=3]; 11847[label="vyv650/True",fontsize=10,color="white",style="solid",shape="box"];10990 -> 11847[label="",style="solid", color="burlywood", weight=9]; 11847 -> 11000[label="",style="solid", color="burlywood", weight=3]; 10857[label="primQuotInt (Neg vyv6330) (gcd0Gcd'2 (abs vyv635) (abs vyv634))",fontsize=16,color="black",shape="box"];10857 -> 10882[label="",style="solid", color="black", weight=3]; 10858[label="vyv634",fontsize=16,color="green",shape="box"];10859[label="primQuotInt (Neg vyv6330) (gcd1 False vyv635 vyv634)",fontsize=16,color="black",shape="box"];10859 -> 10883[label="",style="solid", color="black", weight=3]; 10860[label="primQuotInt (Neg vyv6330) (gcd1 True vyv635 vyv634)",fontsize=16,color="black",shape="box"];10860 -> 10884[label="",style="solid", color="black", weight=3]; 11470[label="vyv6770",fontsize=16,color="green",shape="box"];11471[label="vyv6760",fontsize=16,color="green",shape="box"];10981 -> 11001[label="",style="dashed", color="red", weight=0]; 10981[label="gcd0Gcd'1 (abs vyv631 == fromInt (Pos Zero)) (abs vyv632) (abs vyv631)",fontsize=16,color="magenta"];10981 -> 11002[label="",style="dashed", color="magenta", weight=3]; 10982 -> 10923[label="",style="dashed", color="red", weight=0]; 10982[label="gcd0 vyv632 vyv631",fontsize=16,color="magenta"];10983 -> 65[label="",style="dashed", color="red", weight=0]; 10983[label="error []",fontsize=16,color="magenta"];10994 -> 10949[label="",style="dashed", color="red", weight=0]; 10994[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10994 -> 11007[label="",style="dashed", color="magenta", weight=3]; 10994 -> 11008[label="",style="dashed", color="magenta", weight=3]; 10995 -> 10949[label="",style="dashed", color="red", weight=0]; 10995[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10995 -> 11009[label="",style="dashed", color="magenta", weight=3]; 10995 -> 11010[label="",style="dashed", color="magenta", weight=3]; 10996 -> 10949[label="",style="dashed", color="red", weight=0]; 10996[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10996 -> 11011[label="",style="dashed", color="magenta", weight=3]; 10996 -> 11012[label="",style="dashed", color="magenta", weight=3]; 10997 -> 10949[label="",style="dashed", color="red", weight=0]; 10997[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10997 -> 11013[label="",style="dashed", color="magenta", weight=3]; 10997 -> 11014[label="",style="dashed", color="magenta", weight=3]; 10984[label="gcd0Gcd' (abs vyv635) (abs vyv634)",fontsize=16,color="black",shape="box"];10984 -> 11015[label="",style="solid", color="black", weight=3]; 10998[label="vyv634",fontsize=16,color="green",shape="box"];10999[label="gcd1 False vyv635 vyv634",fontsize=16,color="black",shape="box"];10999 -> 11016[label="",style="solid", color="black", weight=3]; 11000[label="gcd1 True vyv635 vyv634",fontsize=16,color="black",shape="box"];11000 -> 11017[label="",style="solid", color="black", weight=3]; 10882 -> 10891[label="",style="dashed", color="red", weight=0]; 10882[label="primQuotInt (Neg vyv6330) (gcd0Gcd'1 (abs vyv634 == fromInt (Pos Zero)) (abs vyv635) (abs vyv634))",fontsize=16,color="magenta"];10882 -> 10925[label="",style="dashed", color="magenta", weight=3]; 10882 -> 10926[label="",style="dashed", color="magenta", weight=3]; 10883 -> 10891[label="",style="dashed", color="red", weight=0]; 10883[label="primQuotInt (Neg vyv6330) (gcd0 vyv635 vyv634)",fontsize=16,color="magenta"];10883 -> 10927[label="",style="dashed", color="magenta", weight=3]; 10883 -> 10928[label="",style="dashed", color="magenta", weight=3]; 10884 -> 10891[label="",style="dashed", color="red", weight=0]; 10884[label="primQuotInt (Neg vyv6330) (error [])",fontsize=16,color="magenta"];10884 -> 10929[label="",style="dashed", color="magenta", weight=3]; 10884 -> 10930[label="",style="dashed", color="magenta", weight=3]; 11002 -> 10724[label="",style="dashed", color="red", weight=0]; 11002[label="abs vyv631 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11002 -> 11018[label="",style="dashed", color="magenta", weight=3]; 11001[label="gcd0Gcd'1 vyv651 (abs vyv632) (abs vyv631)",fontsize=16,color="burlywood",shape="triangle"];11848[label="vyv651/False",fontsize=10,color="white",style="solid",shape="box"];11001 -> 11848[label="",style="solid", color="burlywood", weight=9]; 11848 -> 11019[label="",style="solid", color="burlywood", weight=3]; 11849[label="vyv651/True",fontsize=10,color="white",style="solid",shape="box"];11001 -> 11849[label="",style="solid", color="burlywood", weight=9]; 11849 -> 11020[label="",style="solid", color="burlywood", weight=3]; 11007[label="vyv63000",fontsize=16,color="green",shape="box"];11008[label="vyv643000",fontsize=16,color="green",shape="box"];11009[label="vyv63000",fontsize=16,color="green",shape="box"];11010[label="vyv643000",fontsize=16,color="green",shape="box"];11011[label="vyv63000",fontsize=16,color="green",shape="box"];11012[label="vyv643000",fontsize=16,color="green",shape="box"];11013[label="vyv63000",fontsize=16,color="green",shape="box"];11014[label="vyv643000",fontsize=16,color="green",shape="box"];11015 -> 11028[label="",style="dashed", color="red", weight=0]; 11015[label="gcd0Gcd'2 (abs vyv635) (abs vyv634)",fontsize=16,color="magenta"];11015 -> 11029[label="",style="dashed", color="magenta", weight=3]; 11015 -> 11030[label="",style="dashed", color="magenta", weight=3]; 11016 -> 10928[label="",style="dashed", color="red", weight=0]; 11016[label="gcd0 vyv635 vyv634",fontsize=16,color="magenta"];11017 -> 65[label="",style="dashed", color="red", weight=0]; 11017[label="error []",fontsize=16,color="magenta"];10925[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10926 -> 11064[label="",style="dashed", color="red", weight=0]; 10926[label="gcd0Gcd'1 (abs vyv634 == fromInt (Pos Zero)) (abs vyv635) (abs vyv634)",fontsize=16,color="magenta"];10926 -> 11065[label="",style="dashed", color="magenta", weight=3]; 10926 -> 11066[label="",style="dashed", color="magenta", weight=3]; 10926 -> 11067[label="",style="dashed", color="magenta", weight=3]; 10927[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10929[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10930 -> 65[label="",style="dashed", color="red", weight=0]; 10930[label="error []",fontsize=16,color="magenta"];11018[label="abs vyv631",fontsize=16,color="black",shape="triangle"];11018 -> 11036[label="",style="solid", color="black", weight=3]; 11019[label="gcd0Gcd'1 False (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];11019 -> 11037[label="",style="solid", color="black", weight=3]; 11020[label="gcd0Gcd'1 True (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];11020 -> 11038[label="",style="solid", color="black", weight=3]; 11029 -> 10985[label="",style="dashed", color="red", weight=0]; 11029[label="abs vyv634",fontsize=16,color="magenta"];11030 -> 10985[label="",style="dashed", color="red", weight=0]; 11030[label="abs vyv635",fontsize=16,color="magenta"];11030 -> 11039[label="",style="dashed", color="magenta", weight=3]; 11028[label="gcd0Gcd'2 vyv653 vyv652",fontsize=16,color="black",shape="triangle"];11028 -> 11040[label="",style="solid", color="black", weight=3]; 11065 -> 10985[label="",style="dashed", color="red", weight=0]; 11065[label="abs vyv634",fontsize=16,color="magenta"];11066 -> 10331[label="",style="dashed", color="red", weight=0]; 11066[label="abs vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11066 -> 11078[label="",style="dashed", color="magenta", weight=3]; 11067 -> 10985[label="",style="dashed", color="red", weight=0]; 11067[label="abs vyv635",fontsize=16,color="magenta"];11067 -> 11079[label="",style="dashed", color="magenta", weight=3]; 11064[label="gcd0Gcd'1 vyv658 vyv653 vyv652",fontsize=16,color="burlywood",shape="triangle"];11850[label="vyv658/False",fontsize=10,color="white",style="solid",shape="box"];11064 -> 11850[label="",style="solid", color="burlywood", weight=9]; 11850 -> 11080[label="",style="solid", color="burlywood", weight=3]; 11851[label="vyv658/True",fontsize=10,color="white",style="solid",shape="box"];11064 -> 11851[label="",style="solid", color="burlywood", weight=9]; 11851 -> 11081[label="",style="solid", color="burlywood", weight=3]; 11036[label="absReal vyv631",fontsize=16,color="black",shape="box"];11036 -> 11051[label="",style="solid", color="black", weight=3]; 11037 -> 11052[label="",style="dashed", color="red", weight=0]; 11037[label="gcd0Gcd'0 (abs vyv632) (abs vyv631)",fontsize=16,color="magenta"];11037 -> 11053[label="",style="dashed", color="magenta", weight=3]; 11037 -> 11054[label="",style="dashed", color="magenta", weight=3]; 11038 -> 11018[label="",style="dashed", color="red", weight=0]; 11038[label="abs vyv632",fontsize=16,color="magenta"];11038 -> 11063[label="",style="dashed", color="magenta", weight=3]; 10985[label="abs vyv634",fontsize=16,color="black",shape="triangle"];10985 -> 11021[label="",style="solid", color="black", weight=3]; 11039[label="vyv635",fontsize=16,color="green",shape="box"];11040 -> 11064[label="",style="dashed", color="red", weight=0]; 11040[label="gcd0Gcd'1 (vyv652 == fromInt (Pos Zero)) vyv653 vyv652",fontsize=16,color="magenta"];11040 -> 11071[label="",style="dashed", color="magenta", weight=3]; 11078 -> 10985[label="",style="dashed", color="red", weight=0]; 11078[label="abs vyv634",fontsize=16,color="magenta"];11079[label="vyv635",fontsize=16,color="green",shape="box"];11080[label="gcd0Gcd'1 False vyv653 vyv652",fontsize=16,color="black",shape="box"];11080 -> 11091[label="",style="solid", color="black", weight=3]; 11081[label="gcd0Gcd'1 True vyv653 vyv652",fontsize=16,color="black",shape="box"];11081 -> 11092[label="",style="solid", color="black", weight=3]; 11051[label="absReal2 vyv631",fontsize=16,color="black",shape="box"];11051 -> 11082[label="",style="solid", color="black", weight=3]; 11053 -> 11018[label="",style="dashed", color="red", weight=0]; 11053[label="abs vyv632",fontsize=16,color="magenta"];11053 -> 11083[label="",style="dashed", color="magenta", weight=3]; 11054 -> 11018[label="",style="dashed", color="red", weight=0]; 11054[label="abs vyv631",fontsize=16,color="magenta"];11052[label="gcd0Gcd'0 vyv657 vyv656",fontsize=16,color="black",shape="triangle"];11052 -> 11084[label="",style="solid", color="black", weight=3]; 11063[label="vyv632",fontsize=16,color="green",shape="box"];11021[label="absReal vyv634",fontsize=16,color="black",shape="box"];11021 -> 11041[label="",style="solid", color="black", weight=3]; 11071 -> 10331[label="",style="dashed", color="red", weight=0]; 11071[label="vyv652 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11071 -> 11085[label="",style="dashed", color="magenta", weight=3]; 11091[label="gcd0Gcd'0 vyv653 vyv652",fontsize=16,color="black",shape="box"];11091 -> 11100[label="",style="solid", color="black", weight=3]; 11092[label="vyv653",fontsize=16,color="green",shape="box"];11082[label="absReal1 vyv631 (vyv631 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];11082 -> 11093[label="",style="solid", color="black", weight=3]; 11083[label="vyv632",fontsize=16,color="green",shape="box"];11084[label="gcd0Gcd' vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11084 -> 11094[label="",style="solid", color="black", weight=3]; 11041[label="absReal2 vyv634",fontsize=16,color="black",shape="box"];11041 -> 11086[label="",style="solid", color="black", weight=3]; 11085[label="vyv652",fontsize=16,color="green",shape="box"];11100[label="gcd0Gcd' vyv652 (vyv653 `rem` vyv652)",fontsize=16,color="black",shape="box"];11100 -> 11109[label="",style="solid", color="black", weight=3]; 11093[label="absReal1 vyv631 (compare vyv631 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];11093 -> 11101[label="",style="solid", color="black", weight=3]; 11094[label="gcd0Gcd'2 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11094 -> 11102[label="",style="solid", color="black", weight=3]; 11086[label="absReal1 vyv634 (vyv634 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];11086 -> 11095[label="",style="solid", color="black", weight=3]; 11109 -> 11028[label="",style="dashed", color="red", weight=0]; 11109[label="gcd0Gcd'2 vyv652 (vyv653 `rem` vyv652)",fontsize=16,color="magenta"];11109 -> 11119[label="",style="dashed", color="magenta", weight=3]; 11109 -> 11120[label="",style="dashed", color="magenta", weight=3]; 11101[label="absReal1 vyv631 (not (compare vyv631 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11852[label="vyv631/Integer vyv6310",fontsize=10,color="white",style="solid",shape="box"];11101 -> 11852[label="",style="solid", color="burlywood", weight=9]; 11852 -> 11110[label="",style="solid", color="burlywood", weight=3]; 11102 -> 11111[label="",style="dashed", color="red", weight=0]; 11102[label="gcd0Gcd'1 (vyv657 `rem` vyv656 == fromInt (Pos Zero)) vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="magenta"];11102 -> 11112[label="",style="dashed", color="magenta", weight=3]; 11095[label="absReal1 vyv634 (compare vyv634 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];11095 -> 11103[label="",style="solid", color="black", weight=3]; 11119[label="vyv653 `rem` vyv652",fontsize=16,color="black",shape="box"];11119 -> 11134[label="",style="solid", color="black", weight=3]; 11120[label="vyv652",fontsize=16,color="green",shape="box"];11110[label="absReal1 (Integer vyv6310) (not (compare (Integer vyv6310) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11110 -> 11121[label="",style="solid", color="black", weight=3]; 11112 -> 10724[label="",style="dashed", color="red", weight=0]; 11112[label="vyv657 `rem` vyv656 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11112 -> 11122[label="",style="dashed", color="magenta", weight=3]; 11111[label="gcd0Gcd'1 vyv659 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="burlywood",shape="triangle"];11853[label="vyv659/False",fontsize=10,color="white",style="solid",shape="box"];11111 -> 11853[label="",style="solid", color="burlywood", weight=9]; 11853 -> 11123[label="",style="solid", color="burlywood", weight=3]; 11854[label="vyv659/True",fontsize=10,color="white",style="solid",shape="box"];11111 -> 11854[label="",style="solid", color="burlywood", weight=9]; 11854 -> 11124[label="",style="solid", color="burlywood", weight=3]; 11103[label="absReal1 vyv634 (not (compare vyv634 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11103 -> 11125[label="",style="solid", color="black", weight=3]; 11134[label="primRemInt vyv653 vyv652",fontsize=16,color="burlywood",shape="triangle"];11855[label="vyv653/Pos vyv6530",fontsize=10,color="white",style="solid",shape="box"];11134 -> 11855[label="",style="solid", color="burlywood", weight=9]; 11855 -> 11148[label="",style="solid", color="burlywood", weight=3]; 11856[label="vyv653/Neg vyv6530",fontsize=10,color="white",style="solid",shape="box"];11134 -> 11856[label="",style="solid", color="burlywood", weight=9]; 11856 -> 11149[label="",style="solid", color="burlywood", weight=3]; 11121[label="absReal1 (Integer vyv6310) (not (compare (Integer vyv6310) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11121 -> 11135[label="",style="solid", color="black", weight=3]; 11122[label="vyv657 `rem` vyv656",fontsize=16,color="burlywood",shape="triangle"];11857[label="vyv657/Integer vyv6570",fontsize=10,color="white",style="solid",shape="box"];11122 -> 11857[label="",style="solid", color="burlywood", weight=9]; 11857 -> 11136[label="",style="solid", color="burlywood", weight=3]; 11123[label="gcd0Gcd'1 False vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11123 -> 11137[label="",style="solid", color="black", weight=3]; 11124[label="gcd0Gcd'1 True vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11124 -> 11138[label="",style="solid", color="black", weight=3]; 11125[label="absReal1 vyv634 (not (primCmpInt vyv634 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11858[label="vyv634/Pos vyv6340",fontsize=10,color="white",style="solid",shape="box"];11125 -> 11858[label="",style="solid", color="burlywood", weight=9]; 11858 -> 11139[label="",style="solid", color="burlywood", weight=3]; 11859[label="vyv634/Neg vyv6340",fontsize=10,color="white",style="solid",shape="box"];11125 -> 11859[label="",style="solid", color="burlywood", weight=9]; 11859 -> 11140[label="",style="solid", color="burlywood", weight=3]; 11148[label="primRemInt (Pos vyv6530) vyv652",fontsize=16,color="burlywood",shape="box"];11860[label="vyv652/Pos vyv6520",fontsize=10,color="white",style="solid",shape="box"];11148 -> 11860[label="",style="solid", color="burlywood", weight=9]; 11860 -> 11167[label="",style="solid", color="burlywood", weight=3]; 11861[label="vyv652/Neg vyv6520",fontsize=10,color="white",style="solid",shape="box"];11148 -> 11861[label="",style="solid", color="burlywood", weight=9]; 11861 -> 11168[label="",style="solid", color="burlywood", weight=3]; 11149[label="primRemInt (Neg vyv6530) vyv652",fontsize=16,color="burlywood",shape="box"];11862[label="vyv652/Pos vyv6520",fontsize=10,color="white",style="solid",shape="box"];11149 -> 11862[label="",style="solid", color="burlywood", weight=9]; 11862 -> 11169[label="",style="solid", color="burlywood", weight=3]; 11863[label="vyv652/Neg vyv6520",fontsize=10,color="white",style="solid",shape="box"];11149 -> 11863[label="",style="solid", color="burlywood", weight=9]; 11863 -> 11170[label="",style="solid", color="burlywood", weight=3]; 11135[label="absReal1 (Integer vyv6310) (not (primCmpInt vyv6310 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11864[label="vyv6310/Pos vyv63100",fontsize=10,color="white",style="solid",shape="box"];11135 -> 11864[label="",style="solid", color="burlywood", weight=9]; 11864 -> 11150[label="",style="solid", color="burlywood", weight=3]; 11865[label="vyv6310/Neg vyv63100",fontsize=10,color="white",style="solid",shape="box"];11135 -> 11865[label="",style="solid", color="burlywood", weight=9]; 11865 -> 11151[label="",style="solid", color="burlywood", weight=3]; 11136[label="Integer vyv6570 `rem` vyv656",fontsize=16,color="burlywood",shape="box"];11866[label="vyv656/Integer vyv6560",fontsize=10,color="white",style="solid",shape="box"];11136 -> 11866[label="",style="solid", color="burlywood", weight=9]; 11866 -> 11152[label="",style="solid", color="burlywood", weight=3]; 11137 -> 11052[label="",style="dashed", color="red", weight=0]; 11137[label="gcd0Gcd'0 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="magenta"];11137 -> 11153[label="",style="dashed", color="magenta", weight=3]; 11137 -> 11154[label="",style="dashed", color="magenta", weight=3]; 11138[label="vyv656",fontsize=16,color="green",shape="box"];11139[label="absReal1 (Pos vyv6340) (not (primCmpInt (Pos vyv6340) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11867[label="vyv6340/Succ vyv63400",fontsize=10,color="white",style="solid",shape="box"];11139 -> 11867[label="",style="solid", color="burlywood", weight=9]; 11867 -> 11155[label="",style="solid", color="burlywood", weight=3]; 11868[label="vyv6340/Zero",fontsize=10,color="white",style="solid",shape="box"];11139 -> 11868[label="",style="solid", color="burlywood", weight=9]; 11868 -> 11156[label="",style="solid", color="burlywood", weight=3]; 11140[label="absReal1 (Neg vyv6340) (not (primCmpInt (Neg vyv6340) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11869[label="vyv6340/Succ vyv63400",fontsize=10,color="white",style="solid",shape="box"];11140 -> 11869[label="",style="solid", color="burlywood", weight=9]; 11869 -> 11157[label="",style="solid", color="burlywood", weight=3]; 11870[label="vyv6340/Zero",fontsize=10,color="white",style="solid",shape="box"];11140 -> 11870[label="",style="solid", color="burlywood", weight=9]; 11870 -> 11158[label="",style="solid", color="burlywood", weight=3]; 11167[label="primRemInt (Pos vyv6530) (Pos vyv6520)",fontsize=16,color="burlywood",shape="box"];11871[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11167 -> 11871[label="",style="solid", color="burlywood", weight=9]; 11871 -> 11189[label="",style="solid", color="burlywood", weight=3]; 11872[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11167 -> 11872[label="",style="solid", color="burlywood", weight=9]; 11872 -> 11190[label="",style="solid", color="burlywood", weight=3]; 11168[label="primRemInt (Pos vyv6530) (Neg vyv6520)",fontsize=16,color="burlywood",shape="box"];11873[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11168 -> 11873[label="",style="solid", color="burlywood", weight=9]; 11873 -> 11191[label="",style="solid", color="burlywood", weight=3]; 11874[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11168 -> 11874[label="",style="solid", color="burlywood", weight=9]; 11874 -> 11192[label="",style="solid", color="burlywood", weight=3]; 11169[label="primRemInt (Neg vyv6530) (Pos vyv6520)",fontsize=16,color="burlywood",shape="box"];11875[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11169 -> 11875[label="",style="solid", color="burlywood", weight=9]; 11875 -> 11193[label="",style="solid", color="burlywood", weight=3]; 11876[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11169 -> 11876[label="",style="solid", color="burlywood", weight=9]; 11876 -> 11194[label="",style="solid", color="burlywood", weight=3]; 11170[label="primRemInt (Neg vyv6530) (Neg vyv6520)",fontsize=16,color="burlywood",shape="box"];11877[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11170 -> 11877[label="",style="solid", color="burlywood", weight=9]; 11877 -> 11195[label="",style="solid", color="burlywood", weight=3]; 11878[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11170 -> 11878[label="",style="solid", color="burlywood", weight=9]; 11878 -> 11196[label="",style="solid", color="burlywood", weight=3]; 11150[label="absReal1 (Integer (Pos vyv63100)) (not (primCmpInt (Pos vyv63100) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11879[label="vyv63100/Succ vyv631000",fontsize=10,color="white",style="solid",shape="box"];11150 -> 11879[label="",style="solid", color="burlywood", weight=9]; 11879 -> 11171[label="",style="solid", color="burlywood", weight=3]; 11880[label="vyv63100/Zero",fontsize=10,color="white",style="solid",shape="box"];11150 -> 11880[label="",style="solid", color="burlywood", weight=9]; 11880 -> 11172[label="",style="solid", color="burlywood", weight=3]; 11151[label="absReal1 (Integer (Neg vyv63100)) (not (primCmpInt (Neg vyv63100) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11881[label="vyv63100/Succ vyv631000",fontsize=10,color="white",style="solid",shape="box"];11151 -> 11881[label="",style="solid", color="burlywood", weight=9]; 11881 -> 11173[label="",style="solid", color="burlywood", weight=3]; 11882[label="vyv63100/Zero",fontsize=10,color="white",style="solid",shape="box"];11151 -> 11882[label="",style="solid", color="burlywood", weight=9]; 11882 -> 11174[label="",style="solid", color="burlywood", weight=3]; 11152[label="Integer vyv6570 `rem` Integer vyv6560",fontsize=16,color="black",shape="box"];11152 -> 11175[label="",style="solid", color="black", weight=3]; 11153[label="vyv656",fontsize=16,color="green",shape="box"];11154 -> 11122[label="",style="dashed", color="red", weight=0]; 11154[label="vyv657 `rem` vyv656",fontsize=16,color="magenta"];11155[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpInt (Pos (Succ vyv63400)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11155 -> 11176[label="",style="solid", color="black", weight=3]; 11156[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11156 -> 11177[label="",style="solid", color="black", weight=3]; 11157[label="absReal1 (Neg (Succ vyv63400)) (not (primCmpInt (Neg (Succ vyv63400)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11157 -> 11178[label="",style="solid", color="black", weight=3]; 11158[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11158 -> 11179[label="",style="solid", color="black", weight=3]; 11189[label="primRemInt (Pos vyv6530) (Pos (Succ vyv65200))",fontsize=16,color="black",shape="box"];11189 -> 11213[label="",style="solid", color="black", weight=3]; 11190[label="primRemInt (Pos vyv6530) (Pos Zero)",fontsize=16,color="black",shape="box"];11190 -> 11214[label="",style="solid", color="black", weight=3]; 11191[label="primRemInt (Pos vyv6530) (Neg (Succ vyv65200))",fontsize=16,color="black",shape="box"];11191 -> 11215[label="",style="solid", color="black", weight=3]; 11192[label="primRemInt (Pos vyv6530) (Neg Zero)",fontsize=16,color="black",shape="box"];11192 -> 11216[label="",style="solid", color="black", weight=3]; 11193[label="primRemInt (Neg vyv6530) (Pos (Succ vyv65200))",fontsize=16,color="black",shape="box"];11193 -> 11217[label="",style="solid", color="black", weight=3]; 11194[label="primRemInt (Neg vyv6530) (Pos Zero)",fontsize=16,color="black",shape="box"];11194 -> 11218[label="",style="solid", color="black", weight=3]; 11195[label="primRemInt (Neg vyv6530) (Neg (Succ vyv65200))",fontsize=16,color="black",shape="box"];11195 -> 11219[label="",style="solid", color="black", weight=3]; 11196[label="primRemInt (Neg vyv6530) (Neg Zero)",fontsize=16,color="black",shape="box"];11196 -> 11220[label="",style="solid", color="black", weight=3]; 11171[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (primCmpInt (Pos (Succ vyv631000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11171 -> 11197[label="",style="solid", color="black", weight=3]; 11172[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11172 -> 11198[label="",style="solid", color="black", weight=3]; 11173[label="absReal1 (Integer (Neg (Succ vyv631000))) (not (primCmpInt (Neg (Succ vyv631000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11173 -> 11199[label="",style="solid", color="black", weight=3]; 11174[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11174 -> 11200[label="",style="solid", color="black", weight=3]; 11175[label="Integer (primRemInt vyv6570 vyv6560)",fontsize=16,color="green",shape="box"];11175 -> 11201[label="",style="dashed", color="green", weight=3]; 11176[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpInt (Pos (Succ vyv63400)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11176 -> 11202[label="",style="solid", color="black", weight=3]; 11177[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11177 -> 11203[label="",style="solid", color="black", weight=3]; 11178[label="absReal1 (Neg (Succ vyv63400)) (not (primCmpInt (Neg (Succ vyv63400)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11178 -> 11204[label="",style="solid", color="black", weight=3]; 11179[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11179 -> 11205[label="",style="solid", color="black", weight=3]; 11213[label="Pos (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11213 -> 11238[label="",style="dashed", color="green", weight=3]; 11214 -> 65[label="",style="dashed", color="red", weight=0]; 11214[label="error []",fontsize=16,color="magenta"];11215[label="Pos (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11215 -> 11239[label="",style="dashed", color="green", weight=3]; 11216 -> 65[label="",style="dashed", color="red", weight=0]; 11216[label="error []",fontsize=16,color="magenta"];11217[label="Neg (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11217 -> 11240[label="",style="dashed", color="green", weight=3]; 11218 -> 65[label="",style="dashed", color="red", weight=0]; 11218[label="error []",fontsize=16,color="magenta"];11219[label="Neg (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11219 -> 11241[label="",style="dashed", color="green", weight=3]; 11220 -> 65[label="",style="dashed", color="red", weight=0]; 11220[label="error []",fontsize=16,color="magenta"];11197[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (primCmpNat (Succ vyv631000) Zero == LT))",fontsize=16,color="black",shape="box"];11197 -> 11221[label="",style="solid", color="black", weight=3]; 11198[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11198 -> 11222[label="",style="solid", color="black", weight=3]; 11199[label="absReal1 (Integer (Neg (Succ vyv631000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];11199 -> 11223[label="",style="solid", color="black", weight=3]; 11200[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11200 -> 11224[label="",style="solid", color="black", weight=3]; 11201 -> 11134[label="",style="dashed", color="red", weight=0]; 11201[label="primRemInt vyv6570 vyv6560",fontsize=16,color="magenta"];11201 -> 11225[label="",style="dashed", color="magenta", weight=3]; 11201 -> 11226[label="",style="dashed", color="magenta", weight=3]; 11202[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpNat (Succ vyv63400) Zero == LT))",fontsize=16,color="black",shape="box"];11202 -> 11227[label="",style="solid", color="black", weight=3]; 11203[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11203 -> 11228[label="",style="solid", color="black", weight=3]; 11204[label="absReal1 (Neg (Succ vyv63400)) (not (LT == LT))",fontsize=16,color="black",shape="box"];11204 -> 11229[label="",style="solid", color="black", weight=3]; 11205[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11205 -> 11230[label="",style="solid", color="black", weight=3]; 11238[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="burlywood",shape="triangle"];11883[label="vyv6530/Succ vyv65300",fontsize=10,color="white",style="solid",shape="box"];11238 -> 11883[label="",style="solid", color="burlywood", weight=9]; 11883 -> 11258[label="",style="solid", color="burlywood", weight=3]; 11884[label="vyv6530/Zero",fontsize=10,color="white",style="solid",shape="box"];11238 -> 11884[label="",style="solid", color="burlywood", weight=9]; 11884 -> 11259[label="",style="solid", color="burlywood", weight=3]; 11239 -> 11238[label="",style="dashed", color="red", weight=0]; 11239[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11239 -> 11260[label="",style="dashed", color="magenta", weight=3]; 11240 -> 11238[label="",style="dashed", color="red", weight=0]; 11240[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11240 -> 11261[label="",style="dashed", color="magenta", weight=3]; 11241 -> 11238[label="",style="dashed", color="red", weight=0]; 11241[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11241 -> 11262[label="",style="dashed", color="magenta", weight=3]; 11241 -> 11263[label="",style="dashed", color="magenta", weight=3]; 11221[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];11221 -> 11242[label="",style="solid", color="black", weight=3]; 11222[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];11222 -> 11243[label="",style="solid", color="black", weight=3]; 11223[label="absReal1 (Integer (Neg (Succ vyv631000))) (not True)",fontsize=16,color="black",shape="box"];11223 -> 11244[label="",style="solid", color="black", weight=3]; 11224[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];11224 -> 11245[label="",style="solid", color="black", weight=3]; 11225[label="vyv6560",fontsize=16,color="green",shape="box"];11226[label="vyv6570",fontsize=16,color="green",shape="box"];11227[label="absReal1 (Pos (Succ vyv63400)) (not (GT == LT))",fontsize=16,color="black",shape="box"];11227 -> 11246[label="",style="solid", color="black", weight=3]; 11228[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];11228 -> 11247[label="",style="solid", color="black", weight=3]; 11229[label="absReal1 (Neg (Succ vyv63400)) (not True)",fontsize=16,color="black",shape="box"];11229 -> 11248[label="",style="solid", color="black", weight=3]; 11230[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];11230 -> 11249[label="",style="solid", color="black", weight=3]; 11258[label="primModNatS (Succ vyv65300) (Succ vyv65200)",fontsize=16,color="black",shape="box"];11258 -> 11323[label="",style="solid", color="black", weight=3]; 11259[label="primModNatS Zero (Succ vyv65200)",fontsize=16,color="black",shape="box"];11259 -> 11324[label="",style="solid", color="black", weight=3]; 11260[label="vyv65200",fontsize=16,color="green",shape="box"];11261[label="vyv6530",fontsize=16,color="green",shape="box"];11262[label="vyv65200",fontsize=16,color="green",shape="box"];11263[label="vyv6530",fontsize=16,color="green",shape="box"];11242[label="absReal1 (Integer (Pos (Succ vyv631000))) (not False)",fontsize=16,color="black",shape="box"];11242 -> 11264[label="",style="solid", color="black", weight=3]; 11243[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];11243 -> 11265[label="",style="solid", color="black", weight=3]; 11244[label="absReal1 (Integer (Neg (Succ vyv631000))) False",fontsize=16,color="black",shape="box"];11244 -> 11266[label="",style="solid", color="black", weight=3]; 11245[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];11245 -> 11267[label="",style="solid", color="black", weight=3]; 11246[label="absReal1 (Pos (Succ vyv63400)) (not False)",fontsize=16,color="black",shape="box"];11246 -> 11268[label="",style="solid", color="black", weight=3]; 11247[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];11247 -> 11269[label="",style="solid", color="black", weight=3]; 11248[label="absReal1 (Neg (Succ vyv63400)) False",fontsize=16,color="black",shape="box"];11248 -> 11270[label="",style="solid", color="black", weight=3]; 11249[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];11249 -> 11271[label="",style="solid", color="black", weight=3]; 11323[label="primModNatS0 vyv65300 vyv65200 (primGEqNatS vyv65300 vyv65200)",fontsize=16,color="burlywood",shape="box"];11885[label="vyv65300/Succ vyv653000",fontsize=10,color="white",style="solid",shape="box"];11323 -> 11885[label="",style="solid", color="burlywood", weight=9]; 11885 -> 11334[label="",style="solid", color="burlywood", weight=3]; 11886[label="vyv65300/Zero",fontsize=10,color="white",style="solid",shape="box"];11323 -> 11886[label="",style="solid", color="burlywood", weight=9]; 11886 -> 11335[label="",style="solid", color="burlywood", weight=3]; 11324[label="Zero",fontsize=16,color="green",shape="box"];11264[label="absReal1 (Integer (Pos (Succ vyv631000))) True",fontsize=16,color="black",shape="box"];11264 -> 11325[label="",style="solid", color="black", weight=3]; 11265[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];11266[label="absReal0 (Integer (Neg (Succ vyv631000))) otherwise",fontsize=16,color="black",shape="box"];11266 -> 11326[label="",style="solid", color="black", weight=3]; 11267[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];11268[label="absReal1 (Pos (Succ vyv63400)) True",fontsize=16,color="black",shape="box"];11268 -> 11327[label="",style="solid", color="black", weight=3]; 11269[label="Pos Zero",fontsize=16,color="green",shape="box"];11270[label="absReal0 (Neg (Succ vyv63400)) otherwise",fontsize=16,color="black",shape="box"];11270 -> 11328[label="",style="solid", color="black", weight=3]; 11271[label="Neg Zero",fontsize=16,color="green",shape="box"];11334[label="primModNatS0 (Succ vyv653000) vyv65200 (primGEqNatS (Succ vyv653000) vyv65200)",fontsize=16,color="burlywood",shape="box"];11887[label="vyv65200/Succ vyv652000",fontsize=10,color="white",style="solid",shape="box"];11334 -> 11887[label="",style="solid", color="burlywood", weight=9]; 11887 -> 11379[label="",style="solid", color="burlywood", weight=3]; 11888[label="vyv65200/Zero",fontsize=10,color="white",style="solid",shape="box"];11334 -> 11888[label="",style="solid", color="burlywood", weight=9]; 11888 -> 11380[label="",style="solid", color="burlywood", weight=3]; 11335[label="primModNatS0 Zero vyv65200 (primGEqNatS Zero vyv65200)",fontsize=16,color="burlywood",shape="box"];11889[label="vyv65200/Succ vyv652000",fontsize=10,color="white",style="solid",shape="box"];11335 -> 11889[label="",style="solid", color="burlywood", weight=9]; 11889 -> 11381[label="",style="solid", color="burlywood", weight=3]; 11890[label="vyv65200/Zero",fontsize=10,color="white",style="solid",shape="box"];11335 -> 11890[label="",style="solid", color="burlywood", weight=9]; 11890 -> 11382[label="",style="solid", color="burlywood", weight=3]; 11325[label="Integer (Pos (Succ vyv631000))",fontsize=16,color="green",shape="box"];11326[label="absReal0 (Integer (Neg (Succ vyv631000))) True",fontsize=16,color="black",shape="box"];11326 -> 11336[label="",style="solid", color="black", weight=3]; 11327[label="Pos (Succ vyv63400)",fontsize=16,color="green",shape="box"];11328[label="absReal0 (Neg (Succ vyv63400)) True",fontsize=16,color="black",shape="box"];11328 -> 11337[label="",style="solid", color="black", weight=3]; 11379[label="primModNatS0 (Succ vyv653000) (Succ vyv652000) (primGEqNatS (Succ vyv653000) (Succ vyv652000))",fontsize=16,color="black",shape="box"];11379 -> 11389[label="",style="solid", color="black", weight=3]; 11380[label="primModNatS0 (Succ vyv653000) Zero (primGEqNatS (Succ vyv653000) Zero)",fontsize=16,color="black",shape="box"];11380 -> 11390[label="",style="solid", color="black", weight=3]; 11381[label="primModNatS0 Zero (Succ vyv652000) (primGEqNatS Zero (Succ vyv652000))",fontsize=16,color="black",shape="box"];11381 -> 11391[label="",style="solid", color="black", weight=3]; 11382[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11382 -> 11392[label="",style="solid", color="black", weight=3]; 11336[label="`negate` Integer (Neg (Succ vyv631000))",fontsize=16,color="black",shape="box"];11336 -> 11383[label="",style="solid", color="black", weight=3]; 11337[label="`negate` Neg (Succ vyv63400)",fontsize=16,color="black",shape="box"];11337 -> 11384[label="",style="solid", color="black", weight=3]; 11389 -> 11575[label="",style="dashed", color="red", weight=0]; 11389[label="primModNatS0 (Succ vyv653000) (Succ vyv652000) (primGEqNatS vyv653000 vyv652000)",fontsize=16,color="magenta"];11389 -> 11576[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11577[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11578[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11579[label="",style="dashed", color="magenta", weight=3]; 11390[label="primModNatS0 (Succ vyv653000) Zero True",fontsize=16,color="black",shape="box"];11390 -> 11401[label="",style="solid", color="black", weight=3]; 11391[label="primModNatS0 Zero (Succ vyv652000) False",fontsize=16,color="black",shape="box"];11391 -> 11402[label="",style="solid", color="black", weight=3]; 11392[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];11392 -> 11403[label="",style="solid", color="black", weight=3]; 11383[label="Integer (primNegInt (Neg (Succ vyv631000)))",fontsize=16,color="green",shape="box"];11383 -> 11393[label="",style="dashed", color="green", weight=3]; 11384[label="primNegInt (Neg (Succ vyv63400))",fontsize=16,color="black",shape="triangle"];11384 -> 11394[label="",style="solid", color="black", weight=3]; 11576[label="vyv652000",fontsize=16,color="green",shape="box"];11577[label="vyv653000",fontsize=16,color="green",shape="box"];11578[label="vyv653000",fontsize=16,color="green",shape="box"];11579[label="vyv652000",fontsize=16,color="green",shape="box"];11575[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS vyv698 vyv699)",fontsize=16,color="burlywood",shape="triangle"];11891[label="vyv698/Succ vyv6980",fontsize=10,color="white",style="solid",shape="box"];11575 -> 11891[label="",style="solid", color="burlywood", weight=9]; 11891 -> 11608[label="",style="solid", color="burlywood", weight=3]; 11892[label="vyv698/Zero",fontsize=10,color="white",style="solid",shape="box"];11575 -> 11892[label="",style="solid", color="burlywood", weight=9]; 11892 -> 11609[label="",style="solid", color="burlywood", weight=3]; 11401 -> 11238[label="",style="dashed", color="red", weight=0]; 11401[label="primModNatS (primMinusNatS (Succ vyv653000) Zero) (Succ Zero)",fontsize=16,color="magenta"];11401 -> 11413[label="",style="dashed", color="magenta", weight=3]; 11401 -> 11414[label="",style="dashed", color="magenta", weight=3]; 11402[label="Succ Zero",fontsize=16,color="green",shape="box"];11403 -> 11238[label="",style="dashed", color="red", weight=0]; 11403[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];11403 -> 11415[label="",style="dashed", color="magenta", weight=3]; 11403 -> 11416[label="",style="dashed", color="magenta", weight=3]; 11393 -> 11384[label="",style="dashed", color="red", weight=0]; 11393[label="primNegInt (Neg (Succ vyv631000))",fontsize=16,color="magenta"];11393 -> 11404[label="",style="dashed", color="magenta", weight=3]; 11394[label="Pos (Succ vyv63400)",fontsize=16,color="green",shape="box"];11608[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) vyv699)",fontsize=16,color="burlywood",shape="box"];11893[label="vyv699/Succ vyv6990",fontsize=10,color="white",style="solid",shape="box"];11608 -> 11893[label="",style="solid", color="burlywood", weight=9]; 11893 -> 11610[label="",style="solid", color="burlywood", weight=3]; 11894[label="vyv699/Zero",fontsize=10,color="white",style="solid",shape="box"];11608 -> 11894[label="",style="solid", color="burlywood", weight=9]; 11894 -> 11611[label="",style="solid", color="burlywood", weight=3]; 11609[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero vyv699)",fontsize=16,color="burlywood",shape="box"];11895[label="vyv699/Succ vyv6990",fontsize=10,color="white",style="solid",shape="box"];11609 -> 11895[label="",style="solid", color="burlywood", weight=9]; 11895 -> 11612[label="",style="solid", color="burlywood", weight=3]; 11896[label="vyv699/Zero",fontsize=10,color="white",style="solid",shape="box"];11609 -> 11896[label="",style="solid", color="burlywood", weight=9]; 11896 -> 11613[label="",style="solid", color="burlywood", weight=3]; 11413[label="Zero",fontsize=16,color="green",shape="box"];11414 -> 11059[label="",style="dashed", color="red", weight=0]; 11414[label="primMinusNatS (Succ vyv653000) Zero",fontsize=16,color="magenta"];11414 -> 11422[label="",style="dashed", color="magenta", weight=3]; 11415[label="Zero",fontsize=16,color="green",shape="box"];11416 -> 11061[label="",style="dashed", color="red", weight=0]; 11416[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];11404[label="vyv631000",fontsize=16,color="green",shape="box"];11610[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) (Succ vyv6990))",fontsize=16,color="black",shape="box"];11610 -> 11614[label="",style="solid", color="black", weight=3]; 11611[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) Zero)",fontsize=16,color="black",shape="box"];11611 -> 11615[label="",style="solid", color="black", weight=3]; 11612[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero (Succ vyv6990))",fontsize=16,color="black",shape="box"];11612 -> 11616[label="",style="solid", color="black", weight=3]; 11613[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11613 -> 11617[label="",style="solid", color="black", weight=3]; 11422[label="vyv653000",fontsize=16,color="green",shape="box"];11614 -> 11575[label="",style="dashed", color="red", weight=0]; 11614[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS vyv6980 vyv6990)",fontsize=16,color="magenta"];11614 -> 11618[label="",style="dashed", color="magenta", weight=3]; 11614 -> 11619[label="",style="dashed", color="magenta", weight=3]; 11615[label="primModNatS0 (Succ vyv696) (Succ vyv697) True",fontsize=16,color="black",shape="triangle"];11615 -> 11620[label="",style="solid", color="black", weight=3]; 11616[label="primModNatS0 (Succ vyv696) (Succ vyv697) False",fontsize=16,color="black",shape="box"];11616 -> 11621[label="",style="solid", color="black", weight=3]; 11617 -> 11615[label="",style="dashed", color="red", weight=0]; 11617[label="primModNatS0 (Succ vyv696) (Succ vyv697) True",fontsize=16,color="magenta"];11618[label="vyv6980",fontsize=16,color="green",shape="box"];11619[label="vyv6990",fontsize=16,color="green",shape="box"];11620 -> 11238[label="",style="dashed", color="red", weight=0]; 11620[label="primModNatS (primMinusNatS (Succ vyv696) (Succ vyv697)) (Succ (Succ vyv697))",fontsize=16,color="magenta"];11620 -> 11622[label="",style="dashed", color="magenta", weight=3]; 11620 -> 11623[label="",style="dashed", color="magenta", weight=3]; 11621[label="Succ (Succ vyv696)",fontsize=16,color="green",shape="box"];11622[label="Succ vyv697",fontsize=16,color="green",shape="box"];11623 -> 11430[label="",style="dashed", color="red", weight=0]; 11623[label="primMinusNatS (Succ vyv696) (Succ vyv697)",fontsize=16,color="magenta"];11623 -> 11624[label="",style="dashed", color="magenta", weight=3]; 11623 -> 11625[label="",style="dashed", color="magenta", weight=3]; 11624[label="Succ vyv697",fontsize=16,color="green",shape="box"];11625[label="Succ vyv696",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vyv653000)), Zero) -> new_primModNatS(new_primMinusNatS0(vyv653000), Zero) new_primModNatS(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS0(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS0(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS0(vyv696, vyv697, Zero, Zero) -> new_primModNatS00(vyv696, vyv697) new_primModNatS00(vyv696, vyv697) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (15) Complex Obligation (AND) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS0(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS0(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS0(vyv696, vyv697, Zero, Zero) -> new_primModNatS00(vyv696, vyv697) new_primModNatS00(vyv696, vyv697) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS0(vyv653000, vyv652000, vyv653000, vyv652000) 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(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS0(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS0(vyv696, vyv697, Zero, Zero) -> new_primModNatS00(vyv696, vyv697) new_primModNatS00(vyv696, vyv697) -> new_primModNatS(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS0(vyv696, vyv697, vyv6980, vyv6990) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS0(vyv696, vyv697, vyv6980, vyv6990) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vyv653000)), Zero) -> new_primModNatS(new_primMinusNatS0(vyv653000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primModNatS(Succ(Succ(vyv653000)), Zero) -> new_primModNatS(new_primMinusNatS0(vyv653000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (25) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(vyv653, vyv652) -> new_gcd0Gcd'1(new_esEs(vyv652), vyv653, vyv652) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_esEs(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'2(vyv653, vyv652) -> new_gcd0Gcd'1(new_esEs(vyv652), vyv653, vyv652) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))),new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0)))) (new_gcd0Gcd'2(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)),new_gcd0Gcd'2(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero))) (new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))),new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0)))) (new_gcd0Gcd'2(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)),new_gcd0Gcd'2(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero))) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_esEs(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_esEs(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_esEs(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Zero)) ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))),new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0)))) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))),new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0)))) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero)) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'2(x3, new_primRemInt(x2, x3)), new_gcd0Gcd'2(x4, Neg(Succ(x5))) -> new_gcd0Gcd'1(False, x4, Neg(Succ(x5))) which results in the following constraint: (1) (new_gcd0Gcd'2(x3, new_primRemInt(x2, x3))=new_gcd0Gcd'2(x4, Neg(Succ(x5))) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'2(x3, new_primRemInt(x2, x3))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primRemInt(x2, x3)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'2(x3, new_primRemInt(x2, x3))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x2, x3)=Neg(Succ(x5)) which results in the following new constraints: (3) (Neg(new_primModNatS1(x31, x30))=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x31), Pos(Succ(x30)))_>=_new_gcd0Gcd'2(Pos(Succ(x30)), new_primRemInt(Neg(x31), Pos(Succ(x30))))) (4) (new_error(ty_Int)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Pos(x32), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Pos(x32), Pos(Zero)))) (5) (new_error(ty_Int)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x33), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Neg(x33), Neg(Zero)))) (6) (new_error(ty_Int)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Pos(x34), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Pos(x34), Neg(Zero)))) (7) (new_error(ty_Int)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x35), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Neg(x35), Pos(Zero)))) (8) (Neg(new_primModNatS1(x37, x36))=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x37), Neg(Succ(x36)))_>=_new_gcd0Gcd'2(Neg(Succ(x36)), new_primRemInt(Neg(x37), Neg(Succ(x36))))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (9) (new_primModNatS1(x31, x30)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(x31), Pos(Succ(x30)))_>=_new_gcd0Gcd'2(Pos(Succ(x30)), new_primRemInt(Neg(x31), Pos(Succ(x30))))) We simplified constraint (4) using rule (VII) which results in the following new constraint: (10) (ty_Int=x49 & new_error(x49)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Pos(x32), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Pos(x32), Pos(Zero)))) We simplified constraint (5) using rule (VII) which results in the following new constraint: (11) (ty_Int=x51 & new_error(x51)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x33), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Neg(x33), Neg(Zero)))) We simplified constraint (6) using rule (VII) which results in the following new constraint: (12) (ty_Int=x53 & new_error(x53)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Pos(x34), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Pos(x34), Neg(Zero)))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (ty_Int=x55 & new_error(x55)=Neg(Succ(x5)) ==> new_gcd0Gcd'1(False, Neg(x35), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Neg(x35), Pos(Zero)))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x37, x36)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(x37), Neg(Succ(x36)))_>=_new_gcd0Gcd'2(Neg(Succ(x36)), new_primRemInt(Neg(x37), Neg(Succ(x36))))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x31, x30)=Succ(x5) which results in the following new constraints: (15) (Succ(Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x38))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x38))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x38)))))) (16) (new_primModNatS1(new_primMinusNatS0(x40), Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(x40))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x40))), Pos(Succ(Zero))))) (17) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (18) (new_primModNatS01(x42, x41, x42, x41)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(x42))), Pos(Succ(Succ(x41))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x41))), new_primRemInt(Neg(Succ(Succ(x42))), Pos(Succ(Succ(x41)))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x38))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x38))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x38)))))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x40))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x40))), Pos(Succ(Zero))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x47))), Pos(Succ(Succ(x48))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x48))), new_primRemInt(Neg(Succ(Succ(x47))), Pos(Succ(Succ(x48)))))) 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 solved constraint (13) using rule (V) (with possible (I) afterwards).We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x37, x36)=Succ(x5) which results in the following new constraints: (23) (Succ(Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x57))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x57))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x57)))))) (24) (new_primModNatS1(new_primMinusNatS0(x59), Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(x59))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x59))), Neg(Succ(Zero))))) (25) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) (26) (new_primModNatS01(x61, x60, x61, x60)=Succ(x5) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(x61))), Neg(Succ(Succ(x60))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x60))), new_primRemInt(Neg(Succ(Succ(x61))), Neg(Succ(Succ(x60)))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x57))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x57))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x57)))))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x59))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x59))), Neg(Succ(Zero))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x66))), Neg(Succ(Succ(x67))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x67))), new_primRemInt(Neg(Succ(Succ(x66))), Neg(Succ(Succ(x67)))))) *We consider the chain new_gcd0Gcd'1(False, x6, x7) -> new_gcd0Gcd'2(x7, new_primRemInt(x6, x7)), new_gcd0Gcd'2(x8, Pos(Succ(x9))) -> new_gcd0Gcd'1(False, x8, Pos(Succ(x9))) which results in the following constraint: (1) (new_gcd0Gcd'2(x7, new_primRemInt(x6, x7))=new_gcd0Gcd'2(x8, Pos(Succ(x9))) ==> new_gcd0Gcd'1(False, x6, x7)_>=_new_gcd0Gcd'2(x7, new_primRemInt(x6, x7))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primRemInt(x6, x7)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, x6, x7)_>=_new_gcd0Gcd'2(x7, new_primRemInt(x6, x7))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Pos(Succ(x9)) which results in the following new constraints: (3) (Pos(new_primModNatS1(x69, x68))=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x69), Neg(Succ(x68)))_>=_new_gcd0Gcd'2(Neg(Succ(x68)), new_primRemInt(Pos(x69), Neg(Succ(x68))))) (4) (Pos(new_primModNatS1(x71, x70))=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x71), Pos(Succ(x70)))_>=_new_gcd0Gcd'2(Pos(Succ(x70)), new_primRemInt(Pos(x71), Pos(Succ(x70))))) (5) (new_error(ty_Int)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x74), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Pos(x74), Pos(Zero)))) (6) (new_error(ty_Int)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Neg(x75), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Neg(x75), Neg(Zero)))) (7) (new_error(ty_Int)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x76), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Pos(x76), Neg(Zero)))) (8) (new_error(ty_Int)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Neg(x77), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Neg(x77), Pos(Zero)))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (9) (new_primModNatS1(x69, x68)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(x69), Neg(Succ(x68)))_>=_new_gcd0Gcd'2(Neg(Succ(x68)), new_primRemInt(Pos(x69), Neg(Succ(x68))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (10) (new_primModNatS1(x71, x70)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(x71), Pos(Succ(x70)))_>=_new_gcd0Gcd'2(Pos(Succ(x70)), new_primRemInt(Pos(x71), Pos(Succ(x70))))) We simplified constraint (5) using rule (VII) which results in the following new constraint: (11) (ty_Int=x102 & new_error(x102)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x74), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Pos(x74), Pos(Zero)))) We simplified constraint (6) using rule (VII) which results in the following new constraint: (12) (ty_Int=x104 & new_error(x104)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Neg(x75), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Neg(x75), Neg(Zero)))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (ty_Int=x106 & new_error(x106)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Pos(x76), Neg(Zero))_>=_new_gcd0Gcd'2(Neg(Zero), new_primRemInt(Pos(x76), Neg(Zero)))) We simplified constraint (8) using rule (VII) which results in the following new constraint: (14) (ty_Int=x108 & new_error(x108)=Pos(Succ(x9)) ==> new_gcd0Gcd'1(False, Neg(x77), Pos(Zero))_>=_new_gcd0Gcd'2(Pos(Zero), new_primRemInt(Neg(x77), Pos(Zero)))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x69, x68)=Succ(x9) which results in the following new constraints: (15) (Succ(Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x80))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x80))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x80)))))) (16) (new_primModNatS1(new_primMinusNatS0(x82), Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(x82))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x82))), Neg(Succ(Zero))))) (17) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) (18) (new_primModNatS01(x84, x83, x84, x83)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(x84))), Neg(Succ(Succ(x83))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x83))), new_primRemInt(Pos(Succ(Succ(x84))), Neg(Succ(Succ(x83)))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x80))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x80))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x80)))))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x82))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x82))), Neg(Succ(Zero))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(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_gcd0Gcd'1(False, Pos(Succ(Succ(x89))), Neg(Succ(Succ(x90))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x90))), new_primRemInt(Pos(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x71, x70)=Succ(x9) which results in the following new constraints: (23) (Succ(Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x91))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x91))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x91)))))) (24) (new_primModNatS1(new_primMinusNatS0(x93), Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(x93))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x93))), Pos(Succ(Zero))))) (25) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) (26) (new_primModNatS01(x95, x94, x95, x94)=Succ(x9) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(x95))), Pos(Succ(Succ(x94))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x94))), new_primRemInt(Pos(Succ(Succ(x95))), Pos(Succ(Succ(x94)))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x91))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x91))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x91)))))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x93))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x93))), Pos(Succ(Zero))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(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_gcd0Gcd'1(False, Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x101))), new_primRemInt(Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101)))))) We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We solved constraint (13) using rule (V) (with possible (I) afterwards).We solved constraint (14) using rule (V) (with possible (I) afterwards). For Pair new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'2(x10, Neg(Succ(x11))) -> new_gcd0Gcd'1(False, x10, Neg(Succ(x11))), new_gcd0Gcd'1(False, x12, x13) -> new_gcd0Gcd'2(x13, new_primRemInt(x12, x13)) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x10, Neg(Succ(x11)))=new_gcd0Gcd'1(False, x12, x13) ==> new_gcd0Gcd'2(x10, Neg(Succ(x11)))_>=_new_gcd0Gcd'1(False, x10, Neg(Succ(x11)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'2(x10, Neg(Succ(x11)))_>=_new_gcd0Gcd'1(False, x10, Neg(Succ(x11)))) For Pair new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'2(x18, Pos(Succ(x19))) -> new_gcd0Gcd'1(False, x18, Pos(Succ(x19))), new_gcd0Gcd'1(False, x20, x21) -> new_gcd0Gcd'2(x21, new_primRemInt(x20, x21)) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x18, Pos(Succ(x19)))=new_gcd0Gcd'1(False, x20, x21) ==> new_gcd0Gcd'2(x18, Pos(Succ(x19)))_>=_new_gcd0Gcd'1(False, x18, Pos(Succ(x19)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'2(x18, Pos(Succ(x19)))_>=_new_gcd0Gcd'1(False, x18, Pos(Succ(x19)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x38))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x38))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x38)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x57))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x57))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x57)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(x40))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x40))), Pos(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(x47))), Pos(Succ(Succ(x48))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x48))), new_primRemInt(Neg(Succ(Succ(x47))), Pos(Succ(Succ(x48)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(x59))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x59))), Neg(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(x66))), Neg(Succ(Succ(x67))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x67))), new_primRemInt(Neg(Succ(Succ(x66))), Neg(Succ(Succ(x67)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x80))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x80))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x80)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x91))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x91))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x91)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(x82))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x82))), Neg(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'2(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(x89))), Neg(Succ(Succ(x90))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x90))), new_primRemInt(Pos(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(x93))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x93))), Pos(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'2(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x101))), new_primRemInt(Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101)))))) *new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) *(new_gcd0Gcd'2(x10, Neg(Succ(x11)))_>=_new_gcd0Gcd'1(False, x10, Neg(Succ(x11)))) *new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) *(new_gcd0Gcd'2(x18, Pos(Succ(x19)))_>=_new_gcd0Gcd'1(False, x18, Pos(Succ(x19)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, vyv653, vyv652) -> new_gcd0Gcd'2(vyv652, new_primRemInt(vyv653, vyv652)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int)),new_gcd0Gcd'1(False, Pos(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int))) (new_gcd0Gcd'1(False, Neg(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int)),new_gcd0Gcd'1(False, Neg(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int))) (new_gcd0Gcd'1(False, Pos(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int)),new_gcd0Gcd'1(False, Pos(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int))) (new_gcd0Gcd'1(False, Neg(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int)),new_gcd0Gcd'1(False, Neg(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int))) (new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int)) new_gcd0Gcd'1(False, Neg(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int)) new_gcd0Gcd'1(False, Pos(x0), Neg(Zero)) -> new_gcd0Gcd'2(Neg(Zero), new_error(ty_Int)) new_gcd0Gcd'1(False, Neg(x0), Pos(Zero)) -> new_gcd0Gcd'2(Pos(Zero), new_error(ty_Int)) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_error(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(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(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'2(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(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'2(Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (84) 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'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'2(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'2(Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(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)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (94) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (116) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (118) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (125) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (129) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (130) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(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'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (131) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (132) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (133) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (134) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (135) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (136) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(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(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (140) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (142) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (146) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (153) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (154) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (166) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (176) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (177) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (178) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(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)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (179) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (182) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(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)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (184) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (186) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (187) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (188) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (189) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (190) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (191) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (192) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (193) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(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(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (194) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (196) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (201) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (207) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (217) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (218) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (219) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (220) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (221) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (222) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (224) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (226) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (230) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (231) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (232) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (233) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (235) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(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'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (239) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (241) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) 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_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (246) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (247) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(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(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (248) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (249) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(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(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (250) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (251) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (252) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (253) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (254) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (255) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (256) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (257) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (258) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (259) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (260) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (261) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (262) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (263) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (264) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (267) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (268) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (270) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (271) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (272) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (273) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (274) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (275) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (276) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (277) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (278) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (280) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (284) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (285) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (286) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (287) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(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'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (288) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (289) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (290) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (291) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(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'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(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)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(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(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(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'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(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)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (299) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(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'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (303) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (304) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (305) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(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(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (308) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(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(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (310) 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'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (312) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (313) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (314) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (315) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 POL(Zero) = 0 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_3 POL(new_gcd0Gcd'2(x_1, x_2)) = x_2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vyv65200) -> Zero ---------------------------------------- (316) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (317) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 POL(Zero) = 0 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_3 POL(new_gcd0Gcd'2(x_1, x_2)) = x_2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vyv65200) -> Zero ---------------------------------------- (318) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (319) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (320) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (321) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'2(x2, Pos(Succ(x3))) -> new_gcd0Gcd'1(False, x2, Pos(Succ(x3))), new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x4)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x4))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))=new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x4)))) ==> new_gcd0Gcd'2(x2, Pos(Succ(x3)))_>=_new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(Succ(Succ(x4))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x4))))) *We consider the chain new_gcd0Gcd'2(x5, Pos(Succ(x6))) -> new_gcd0Gcd'1(False, x5, Pos(Succ(x6))), new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x7)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x7))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x5, Pos(Succ(x6)))=new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x7)))) ==> new_gcd0Gcd'2(x5, Pos(Succ(x6)))_>=_new_gcd0Gcd'1(False, x5, Pos(Succ(x6)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(Succ(Succ(x7))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x7))))) *We consider the chain new_gcd0Gcd'2(x38, Pos(Succ(x39))) -> new_gcd0Gcd'1(False, x38, Pos(Succ(x39))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x40)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x38, Pos(Succ(x39)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40))))) ==> new_gcd0Gcd'2(x38, Pos(Succ(x39)))_>=_new_gcd0Gcd'1(False, x38, Pos(Succ(x39)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40)))))) *We consider the chain new_gcd0Gcd'2(x41, Pos(Succ(x42))) -> new_gcd0Gcd'1(False, x41, Pos(Succ(x42))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x43)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x41, Pos(Succ(x42)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43))))) ==> new_gcd0Gcd'2(x41, Pos(Succ(x42)))_>=_new_gcd0Gcd'1(False, x41, Pos(Succ(x42)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43)))))) *We consider the chain new_gcd0Gcd'2(x44, Pos(Succ(x45))) -> new_gcd0Gcd'1(False, x44, Pos(Succ(x45))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x47))))), Pos(new_primModNatS01(Succ(Succ(x46)), Succ(Succ(x47)), x46, x47))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x44, Pos(Succ(x45)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47)))))) ==> new_gcd0Gcd'2(x44, Pos(Succ(x45)))_>=_new_gcd0Gcd'1(False, x44, Pos(Succ(x45)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47))))))) *We consider the chain new_gcd0Gcd'2(x48, Pos(Succ(x49))) -> new_gcd0Gcd'1(False, x48, Pos(Succ(x49))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x50))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x48, Pos(Succ(x49)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50)))))) ==> new_gcd0Gcd'2(x48, Pos(Succ(x49)))_>=_new_gcd0Gcd'1(False, x48, Pos(Succ(x49)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50))))))) *We consider the chain new_gcd0Gcd'2(x51, Pos(Succ(x52))) -> new_gcd0Gcd'1(False, x51, Pos(Succ(x52))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x53), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x51, Pos(Succ(x52)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'2(x51, Pos(Succ(x52)))_>=_new_gcd0Gcd'1(False, x51, Pos(Succ(x52)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'2(x54, Pos(Succ(x55))) -> new_gcd0Gcd'1(False, x54, Pos(Succ(x55))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x54, Pos(Succ(x55)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x54, Pos(Succ(x55)))_>=_new_gcd0Gcd'1(False, x54, Pos(Succ(x55)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x56, Pos(Succ(x57))) -> new_gcd0Gcd'1(False, x56, Pos(Succ(x57))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x58, Zero, x58, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x56, Pos(Succ(x57)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x56, Pos(Succ(x57)))_>=_new_gcd0Gcd'1(False, x56, Pos(Succ(x57)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x59, Pos(Succ(x60))) -> new_gcd0Gcd'1(False, x59, Pos(Succ(x60))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x62))))), Neg(new_primModNatS01(Succ(Succ(x61)), Succ(Succ(x62)), x61, x62))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x59, Pos(Succ(x60)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62)))))) ==> new_gcd0Gcd'2(x59, Pos(Succ(x60)))_>=_new_gcd0Gcd'1(False, x59, Pos(Succ(x60)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62))))))) *We consider the chain new_gcd0Gcd'2(x63, Pos(Succ(x64))) -> new_gcd0Gcd'1(False, x63, Pos(Succ(x64))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x65))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x63, Pos(Succ(x64)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65)))))) ==> new_gcd0Gcd'2(x63, Pos(Succ(x64)))_>=_new_gcd0Gcd'1(False, x63, Pos(Succ(x64)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65))))))) *We consider the chain new_gcd0Gcd'2(x66, Pos(Succ(x67))) -> new_gcd0Gcd'1(False, x66, Pos(Succ(x67))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x68), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x66, Pos(Succ(x67)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'2(x66, Pos(Succ(x67)))_>=_new_gcd0Gcd'1(False, x66, Pos(Succ(x67)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'2(x69, Pos(Succ(x70))) -> new_gcd0Gcd'1(False, x69, Pos(Succ(x70))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x69, Pos(Succ(x70)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x69, Pos(Succ(x70)))_>=_new_gcd0Gcd'1(False, x69, Pos(Succ(x70)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x71, Pos(Succ(x72))) -> new_gcd0Gcd'1(False, x71, Pos(Succ(x72))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x73, Zero, x73, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x71, Pos(Succ(x72)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x71, Pos(Succ(x72)))_>=_new_gcd0Gcd'1(False, x71, Pos(Succ(x72)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x74)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x74))), Pos(Succ(Zero))), new_gcd0Gcd'2(x75, Pos(Succ(x76))) -> new_gcd0Gcd'1(False, x75, Pos(Succ(x76))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(x74))), Pos(Succ(Zero)))=new_gcd0Gcd'2(x75, Pos(Succ(x76))) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x74))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x74))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x74))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x74))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x109)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x109))), Neg(Succ(Zero))), new_gcd0Gcd'2(x110, Neg(Succ(x111))) -> new_gcd0Gcd'1(False, x110, Neg(Succ(x111))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(x109))), Neg(Succ(Zero)))=new_gcd0Gcd'2(x110, Neg(Succ(x111))) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x109))), Neg(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(Zero)), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x109))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'2(x146, Neg(Succ(x147))) -> new_gcd0Gcd'1(False, x146, Neg(Succ(x147))), new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x148)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x148))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x146, Neg(Succ(x147)))=new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x148)))) ==> new_gcd0Gcd'2(x146, Neg(Succ(x147)))_>=_new_gcd0Gcd'1(False, x146, Neg(Succ(x147)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(Succ(Succ(x148))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x148))))) *We consider the chain new_gcd0Gcd'2(x149, Neg(Succ(x150))) -> new_gcd0Gcd'1(False, x149, Neg(Succ(x150))), new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x151)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x151))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x149, Neg(Succ(x150)))=new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x151)))) ==> new_gcd0Gcd'2(x149, Neg(Succ(x150)))_>=_new_gcd0Gcd'1(False, x149, Neg(Succ(x150)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(Succ(Succ(x151))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x151))))) *We consider the chain new_gcd0Gcd'2(x152, Neg(Succ(x153))) -> new_gcd0Gcd'1(False, x152, Neg(Succ(x153))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x154)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x152, Neg(Succ(x153)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154))))) ==> new_gcd0Gcd'2(x152, Neg(Succ(x153)))_>=_new_gcd0Gcd'1(False, x152, Neg(Succ(x153)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154)))))) *We consider the chain new_gcd0Gcd'2(x155, Neg(Succ(x156))) -> new_gcd0Gcd'1(False, x155, Neg(Succ(x156))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x157)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x155, Neg(Succ(x156)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157))))) ==> new_gcd0Gcd'2(x155, Neg(Succ(x156)))_>=_new_gcd0Gcd'1(False, x155, Neg(Succ(x156)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157)))))) *We consider the chain new_gcd0Gcd'2(x158, Neg(Succ(x159))) -> new_gcd0Gcd'1(False, x158, Neg(Succ(x159))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x161))))), Pos(new_primModNatS01(Succ(Succ(x160)), Succ(Succ(x161)), x160, x161))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x158, Neg(Succ(x159)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161)))))) ==> new_gcd0Gcd'2(x158, Neg(Succ(x159)))_>=_new_gcd0Gcd'1(False, x158, Neg(Succ(x159)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161))))))) *We consider the chain new_gcd0Gcd'2(x162, Neg(Succ(x163))) -> new_gcd0Gcd'1(False, x162, Neg(Succ(x163))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x164))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x162, Neg(Succ(x163)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164)))))) ==> new_gcd0Gcd'2(x162, Neg(Succ(x163)))_>=_new_gcd0Gcd'1(False, x162, Neg(Succ(x163)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164))))))) *We consider the chain new_gcd0Gcd'2(x165, Neg(Succ(x166))) -> new_gcd0Gcd'1(False, x165, Neg(Succ(x166))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x167), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x165, Neg(Succ(x166)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'2(x165, Neg(Succ(x166)))_>=_new_gcd0Gcd'1(False, x165, Neg(Succ(x166)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'2(x168, Neg(Succ(x169))) -> new_gcd0Gcd'1(False, x168, Neg(Succ(x169))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x168, Neg(Succ(x169)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x168, Neg(Succ(x169)))_>=_new_gcd0Gcd'1(False, x168, Neg(Succ(x169)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x170, Neg(Succ(x171))) -> new_gcd0Gcd'1(False, x170, Neg(Succ(x171))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x172, Zero, x172, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x170, Neg(Succ(x171)))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x170, Neg(Succ(x171)))_>=_new_gcd0Gcd'1(False, x170, Neg(Succ(x171)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x173, Neg(Succ(x174))) -> new_gcd0Gcd'1(False, x173, Neg(Succ(x174))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x176))))), Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Succ(x176)), x175, x176))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x173, Neg(Succ(x174)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176)))))) ==> new_gcd0Gcd'2(x173, Neg(Succ(x174)))_>=_new_gcd0Gcd'1(False, x173, Neg(Succ(x174)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))) *We consider the chain new_gcd0Gcd'2(x177, Neg(Succ(x178))) -> new_gcd0Gcd'1(False, x177, Neg(Succ(x178))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x179))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x177, Neg(Succ(x178)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179)))))) ==> new_gcd0Gcd'2(x177, Neg(Succ(x178)))_>=_new_gcd0Gcd'1(False, x177, Neg(Succ(x178)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179))))))) *We consider the chain new_gcd0Gcd'2(x180, Neg(Succ(x181))) -> new_gcd0Gcd'1(False, x180, Neg(Succ(x181))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x182), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x180, Neg(Succ(x181)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'2(x180, Neg(Succ(x181)))_>=_new_gcd0Gcd'1(False, x180, Neg(Succ(x181)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'2(x183, Neg(Succ(x184))) -> new_gcd0Gcd'1(False, x183, Neg(Succ(x184))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x183, Neg(Succ(x184)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x183, Neg(Succ(x184)))_>=_new_gcd0Gcd'1(False, x183, Neg(Succ(x184)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'2(x185, Neg(Succ(x186))) -> new_gcd0Gcd'1(False, x185, Neg(Succ(x186))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x187, Zero, x187, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x185, Neg(Succ(x186)))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'2(x185, Neg(Succ(x186)))_>=_new_gcd0Gcd'1(False, x185, Neg(Succ(x186)))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x212)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x212))), Pos(Succ(Zero))), new_gcd0Gcd'2(x213, Pos(Succ(x214))) -> new_gcd0Gcd'1(False, x213, Pos(Succ(x214))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(x212))), Pos(Succ(Zero)))=new_gcd0Gcd'2(x213, Pos(Succ(x214))) ==> new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x212))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x212))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x212))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x212))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x247)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x247))), Neg(Succ(Zero))), new_gcd0Gcd'2(x248, Neg(Succ(x249))) -> new_gcd0Gcd'1(False, x248, Neg(Succ(x249))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(x247))), Neg(Succ(Zero)))=new_gcd0Gcd'2(x248, Neg(Succ(x249))) ==> new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x247))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x247))), Neg(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(Zero)), Neg(Succ(Succ(x247))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x247))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x276))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x276)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'2(x277, Pos(Succ(x278))) -> new_gcd0Gcd'1(False, x277, Pos(Succ(x278))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x276)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'2(x277, Pos(Succ(x278))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x276)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x276)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x276)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x276)))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x311))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x311)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'2(x312, Neg(Succ(x313))) -> new_gcd0Gcd'1(False, x312, Neg(Succ(x313))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x311)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'2(x312, Neg(Succ(x313))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x311)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x311)))), Neg(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(Zero))), Neg(Succ(Succ(Succ(x311)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x311)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x340))))), Neg(Succ(Succ(Succ(Succ(x341)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x341))))), Pos(new_primModNatS01(Succ(Succ(x340)), Succ(Succ(x341)), x340, x341))), new_gcd0Gcd'2(x342, Pos(Succ(x343))) -> new_gcd0Gcd'1(False, x342, Pos(Succ(x343))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x341))))), Pos(new_primModNatS01(Succ(Succ(x340)), Succ(Succ(x341)), x340, x341)))=new_gcd0Gcd'2(x342, Pos(Succ(x343))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x340))))), Neg(Succ(Succ(Succ(Succ(x341))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x341))))), Pos(new_primModNatS01(Succ(Succ(x340)), Succ(Succ(x341)), x340, x341)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x340))=x1044 & Succ(Succ(x341))=x1045 & new_primModNatS01(x1044, x1045, x340, x341)=Succ(x343) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x340))))), Neg(Succ(Succ(Succ(Succ(x341))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x341))))), Pos(new_primModNatS01(Succ(Succ(x340)), Succ(Succ(x341)), x340, x341)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1044, x1045, x340, x341)=Succ(x343) which results in the following new constraints: (3) (new_primModNatS02(x1047, x1046)=Succ(x343) & Succ(Succ(Zero))=x1047 & Succ(Succ(Zero))=x1046 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1051, x1050, x1049, x1048)=Succ(x343) & Succ(Succ(Succ(x1049)))=x1051 & Succ(Succ(Succ(x1048)))=x1050 & (\/x1052:new_primModNatS01(x1051, x1050, x1049, x1048)=Succ(x1052) & Succ(Succ(x1049))=x1051 & Succ(Succ(x1048))=x1050 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1049))))), Neg(Succ(Succ(Succ(Succ(x1048))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x1048))))), Pos(new_primModNatS01(Succ(Succ(x1049)), Succ(Succ(x1048)), x1049, x1048)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1049)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1048)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1048)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1049))), Succ(Succ(Succ(x1048))), Succ(x1049), Succ(x1048))))) (5) (new_primModNatS02(x1055, x1054)=Succ(x343) & Succ(Succ(Succ(x1053)))=x1055 & Succ(Succ(Zero))=x1054 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1053)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1053))), Succ(Succ(Zero)), Succ(x1053), Zero)))) (6) (Succ(Succ(x1058))=Succ(x343) & Succ(Succ(Zero))=x1058 & Succ(Succ(Succ(x1056)))=x1057 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1056))), Zero, Succ(x1056))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1047, x1046)=Succ(x343) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1060), Succ(x1059)), Succ(x1059))=Succ(x343) & Succ(Succ(Zero))=x1060 & Succ(Succ(Zero))=x1059 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1051, x1050, x1049, x1048)=Succ(x343) & Succ(Succ(Succ(x1049)))=x1051 & Succ(Succ(Succ(x1048)))=x1050 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1049)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1048)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1048)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1049))), Succ(Succ(Succ(x1048))), Succ(x1049), Succ(x1048))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1055, x1054)=Succ(x343) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1079), Succ(x1078)), Succ(x1078))=Succ(x343) & Succ(Succ(Succ(x1053)))=x1079 & Succ(Succ(Zero))=x1078 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1053)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1053))), Succ(Succ(Zero)), Succ(x1053), Zero)))) We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1056))), Zero, Succ(x1056))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1051, x1050, x1049, x1048)=Succ(x343) which results in the following new constraints: (12) (new_primModNatS02(x1066, x1065)=Succ(x343) & Succ(Succ(Succ(Zero)))=x1066 & Succ(Succ(Succ(Zero)))=x1065 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1070, x1069, x1068, x1067)=Succ(x343) & Succ(Succ(Succ(Succ(x1068))))=x1070 & Succ(Succ(Succ(Succ(x1067))))=x1069 & (\/x1071:new_primModNatS01(x1070, x1069, x1068, x1067)=Succ(x1071) & Succ(Succ(Succ(x1068)))=x1070 & Succ(Succ(Succ(x1067)))=x1069 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1068)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1067)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1067)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1068))), Succ(Succ(Succ(x1067))), Succ(x1068), Succ(x1067))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1068))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1068)))), Succ(Succ(Succ(Succ(x1067)))), Succ(Succ(x1068)), Succ(Succ(x1067)))))) (14) (new_primModNatS02(x1074, x1073)=Succ(x343) & Succ(Succ(Succ(Succ(x1072))))=x1074 & Succ(Succ(Succ(Zero)))=x1073 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1072))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1072)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1072)), Succ(Zero))))) (15) (Succ(Succ(x1077))=Succ(x343) & Succ(Succ(Succ(Zero)))=x1077 & Succ(Succ(Succ(Succ(x1075))))=x1076 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1075)))), Succ(Zero), Succ(Succ(x1075)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1068))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1068)))), Succ(Succ(Succ(Succ(x1067)))), Succ(Succ(x1068)), Succ(Succ(x1067)))))) 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(Succ(x1072))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1072)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1072)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1075)))), Succ(Zero), Succ(Succ(x1075)))))) 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(Succ(x1053)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1053))), Succ(Succ(Zero)), Succ(x1053), Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x402)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x402))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'2(x403, Pos(Succ(x404))) -> new_gcd0Gcd'1(False, x403, Pos(Succ(x404))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x402))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'2(x403, Pos(Succ(x404))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x402))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x402))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x402))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x402))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero))))), new_gcd0Gcd'2(x435, Pos(Succ(x436))) -> new_gcd0Gcd'1(False, x435, Pos(Succ(x436))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))=new_gcd0Gcd'2(x435, Pos(Succ(x436))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x434)=x1084 & Succ(Succ(Zero))=x1085 & new_primModNatS1(x1084, x1085)=Succ(x436) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1084, x1085)=Succ(x436) which results in the following new constraints: (3) (Succ(Zero)=Succ(x436) & Succ(x434)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1086) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x436) & Succ(x434)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x1088), Zero)=Succ(x436) & Succ(x434)=Succ(Succ(x1088)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x1090, x1089, x1090, x1089)=Succ(x436) & Succ(x434)=Succ(Succ(x1090)) & Succ(Succ(Zero))=Succ(x1089) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x434))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x434), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x1090=x1091 & x1089=x1092 & new_primModNatS01(x1090, x1089, x1091, x1092)=Succ(x436) & Succ(Zero)=x1089 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1090)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1090)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1090, x1089, x1091, x1092)=Succ(x436) which results in the following new constraints: (9) (new_primModNatS02(x1094, x1093)=Succ(x436) & x1094=Zero & x1093=Zero & Succ(Zero)=x1093 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1094)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1094)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x1098, x1097, x1096, x1095)=Succ(x436) & x1098=Succ(x1096) & x1097=Succ(x1095) & Succ(Zero)=x1097 & (\/x1099:new_primModNatS01(x1098, x1097, x1096, x1095)=Succ(x1099) & x1098=x1096 & x1097=x1095 & Succ(Zero)=x1097 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1098)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1098)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1098)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1098)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x1102, x1101)=Succ(x436) & x1102=Succ(x1100) & x1101=Zero & Succ(Zero)=x1101 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1102)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1102)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x1105))=Succ(x436) & x1105=Zero & x1104=Succ(x1103) & Succ(Zero)=x1104 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1105)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1105)), Succ(Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1096))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1096))), Succ(Succ(Zero)))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_gcd0Gcd'2(x466, Pos(Succ(x467))) -> new_gcd0Gcd'1(False, x466, Pos(Succ(x467))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_gcd0Gcd'2(x466, Pos(Succ(x467))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x468))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x468, Zero, x468, Zero))), new_gcd0Gcd'2(x469, Pos(Succ(x470))) -> new_gcd0Gcd'1(False, x469, Pos(Succ(x470))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x468, Zero, x468, Zero)))=new_gcd0Gcd'2(x469, Pos(Succ(x470))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x468))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x468, Zero, x468, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x1108 & x468=x1109 & Zero=x1110 & new_primModNatS01(x468, x1108, x1109, x1110)=Succ(x470) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x468))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x468, Zero, x468, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x468, x1108, x1109, x1110)=Succ(x470) which results in the following new constraints: (3) (new_primModNatS02(x1112, x1111)=Succ(x470) & Zero=x1111 & x1112=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1112))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1112, Zero, x1112, Zero)))) (4) (new_primModNatS01(x1116, x1115, x1114, x1113)=Succ(x470) & Zero=x1115 & x1116=Succ(x1114) & Zero=Succ(x1113) & (\/x1117:new_primModNatS01(x1116, x1115, x1114, x1113)=Succ(x1117) & Zero=x1115 & x1116=x1114 & Zero=x1113 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1116))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1116, Zero, x1116, Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1116))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1116, Zero, x1116, Zero)))) (5) (new_primModNatS02(x1120, x1119)=Succ(x470) & Zero=x1119 & x1120=Succ(x1118) & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1120))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1120, Zero, x1120, Zero)))) (6) (Succ(Succ(x1123))=Succ(x470) & Zero=x1122 & x1123=Zero & Zero=Succ(x1121) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1123))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1123, Zero, x1123, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x1124 & new_primModNatS02(x1124, x1111)=Succ(x470) & Zero=x1111 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Succ(x1118)=x1131 & new_primModNatS02(x1131, x1119)=Succ(x470) & Zero=x1119 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1118)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1118), Zero, Succ(x1118), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1124, x1111)=Succ(x470) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1126), Succ(x1125)), Succ(x1125))=Succ(x470) & Zero=x1126 & Zero=x1125 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1131, x1119)=Succ(x470) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1133), Succ(x1132)), Succ(x1132))=Succ(x470) & Succ(x1118)=x1133 & Zero=x1132 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1118)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1118), Zero, Succ(x1118), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1118)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1118), Zero, Succ(x1118), Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x506))))), Neg(Succ(Succ(Succ(Succ(x507)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x507))))), Neg(new_primModNatS01(Succ(Succ(x506)), Succ(Succ(x507)), x506, x507))), new_gcd0Gcd'2(x508, Neg(Succ(x509))) -> new_gcd0Gcd'1(False, x508, Neg(Succ(x509))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x507))))), Neg(new_primModNatS01(Succ(Succ(x506)), Succ(Succ(x507)), x506, x507)))=new_gcd0Gcd'2(x508, Neg(Succ(x509))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x506))))), Neg(Succ(Succ(Succ(Succ(x507))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x507))))), Neg(new_primModNatS01(Succ(Succ(x506)), Succ(Succ(x507)), x506, x507)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x506))=x1138 & Succ(Succ(x507))=x1139 & new_primModNatS01(x1138, x1139, x506, x507)=Succ(x509) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x506))))), Neg(Succ(Succ(Succ(Succ(x507))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x507))))), Neg(new_primModNatS01(Succ(Succ(x506)), Succ(Succ(x507)), x506, x507)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1138, x1139, x506, x507)=Succ(x509) which results in the following new constraints: (3) (new_primModNatS02(x1141, x1140)=Succ(x509) & Succ(Succ(Zero))=x1141 & Succ(Succ(Zero))=x1140 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1145, x1144, x1143, x1142)=Succ(x509) & Succ(Succ(Succ(x1143)))=x1145 & Succ(Succ(Succ(x1142)))=x1144 & (\/x1146:new_primModNatS01(x1145, x1144, x1143, x1142)=Succ(x1146) & Succ(Succ(x1143))=x1145 & Succ(Succ(x1142))=x1144 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1143))))), Neg(Succ(Succ(Succ(Succ(x1142))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x1142))))), Neg(new_primModNatS01(Succ(Succ(x1143)), Succ(Succ(x1142)), x1143, x1142)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1143)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1142)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1142)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1143))), Succ(Succ(Succ(x1142))), Succ(x1143), Succ(x1142))))) (5) (new_primModNatS02(x1149, x1148)=Succ(x509) & Succ(Succ(Succ(x1147)))=x1149 & Succ(Succ(Zero))=x1148 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1147)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1147))), Succ(Succ(Zero)), Succ(x1147), Zero)))) (6) (Succ(Succ(x1152))=Succ(x509) & Succ(Succ(Zero))=x1152 & Succ(Succ(Succ(x1150)))=x1151 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1150))), Zero, Succ(x1150))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1141, x1140)=Succ(x509) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1154), Succ(x1153)), Succ(x1153))=Succ(x509) & Succ(Succ(Zero))=x1154 & Succ(Succ(Zero))=x1153 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1145, x1144, x1143, x1142)=Succ(x509) & Succ(Succ(Succ(x1143)))=x1145 & Succ(Succ(Succ(x1142)))=x1144 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1143)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1142)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1142)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1143))), Succ(Succ(Succ(x1142))), Succ(x1143), Succ(x1142))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1149, x1148)=Succ(x509) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1173), Succ(x1172)), Succ(x1172))=Succ(x509) & Succ(Succ(Succ(x1147)))=x1173 & Succ(Succ(Zero))=x1172 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1147)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1147))), Succ(Succ(Zero)), Succ(x1147), Zero)))) We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1150))), Zero, Succ(x1150))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1145, x1144, x1143, x1142)=Succ(x509) which results in the following new constraints: (12) (new_primModNatS02(x1160, x1159)=Succ(x509) & Succ(Succ(Succ(Zero)))=x1160 & Succ(Succ(Succ(Zero)))=x1159 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1164, x1163, x1162, x1161)=Succ(x509) & Succ(Succ(Succ(Succ(x1162))))=x1164 & Succ(Succ(Succ(Succ(x1161))))=x1163 & (\/x1165:new_primModNatS01(x1164, x1163, x1162, x1161)=Succ(x1165) & Succ(Succ(Succ(x1162)))=x1164 & Succ(Succ(Succ(x1161)))=x1163 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1162)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1161)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1161)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1162))), Succ(Succ(Succ(x1161))), Succ(x1162), Succ(x1161))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1162))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1162)))), Succ(Succ(Succ(Succ(x1161)))), Succ(Succ(x1162)), Succ(Succ(x1161)))))) (14) (new_primModNatS02(x1168, x1167)=Succ(x509) & Succ(Succ(Succ(Succ(x1166))))=x1168 & Succ(Succ(Succ(Zero)))=x1167 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1166))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1166)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1166)), Succ(Zero))))) (15) (Succ(Succ(x1171))=Succ(x509) & Succ(Succ(Succ(Zero)))=x1171 & Succ(Succ(Succ(Succ(x1169))))=x1170 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1169)))), Succ(Zero), Succ(Succ(x1169)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1162))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1162)))), Succ(Succ(Succ(Succ(x1161)))), Succ(Succ(x1162)), Succ(Succ(x1161)))))) 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(Succ(x1166))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1166)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1166)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1169)))), Succ(Zero), Succ(Succ(x1169)))))) 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(Succ(x1147)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1147))), Succ(Succ(Zero)), Succ(x1147), Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x565)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x565))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'2(x566, Neg(Succ(x567))) -> new_gcd0Gcd'1(False, x566, Neg(Succ(x567))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x565))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'2(x566, Neg(Succ(x567))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x565))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x565))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x565))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x565))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero))))), new_gcd0Gcd'2(x598, Neg(Succ(x599))) -> new_gcd0Gcd'1(False, x598, Neg(Succ(x599))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))=new_gcd0Gcd'2(x598, Neg(Succ(x599))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x597)=x1178 & Succ(Succ(Zero))=x1179 & new_primModNatS1(x1178, x1179)=Succ(x599) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1178, x1179)=Succ(x599) which results in the following new constraints: (3) (Succ(Zero)=Succ(x599) & Succ(x597)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1180) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x599) & Succ(x597)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x1182), Zero)=Succ(x599) & Succ(x597)=Succ(Succ(x1182)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x1184, x1183, x1184, x1183)=Succ(x599) & Succ(x597)=Succ(Succ(x1184)) & Succ(Succ(Zero))=Succ(x1183) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x597))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x597), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x1184=x1185 & x1183=x1186 & new_primModNatS01(x1184, x1183, x1185, x1186)=Succ(x599) & Succ(Zero)=x1183 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1184)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1184)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1184, x1183, x1185, x1186)=Succ(x599) which results in the following new constraints: (9) (new_primModNatS02(x1188, x1187)=Succ(x599) & x1188=Zero & x1187=Zero & Succ(Zero)=x1187 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1188)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1188)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x1192, x1191, x1190, x1189)=Succ(x599) & x1192=Succ(x1190) & x1191=Succ(x1189) & Succ(Zero)=x1191 & (\/x1193:new_primModNatS01(x1192, x1191, x1190, x1189)=Succ(x1193) & x1192=x1190 & x1191=x1189 & Succ(Zero)=x1191 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1192)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1192)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1192)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1192)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x1196, x1195)=Succ(x599) & x1196=Succ(x1194) & x1195=Zero & Succ(Zero)=x1195 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1196)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1196)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x1199))=Succ(x599) & x1199=Zero & x1198=Succ(x1197) & Succ(Zero)=x1198 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1199)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1199)), Succ(Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1190))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1190))), Succ(Succ(Zero)))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_gcd0Gcd'2(x626, Neg(Succ(x627))) -> new_gcd0Gcd'1(False, x626, Neg(Succ(x627))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_gcd0Gcd'2(x626, Neg(Succ(x627))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x631))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x631, Zero, x631, Zero))), new_gcd0Gcd'2(x632, Neg(Succ(x633))) -> new_gcd0Gcd'1(False, x632, Neg(Succ(x633))) which results in the following constraint: (1) (new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x631, Zero, x631, Zero)))=new_gcd0Gcd'2(x632, Neg(Succ(x633))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x631))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x631, Zero, x631, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x1202 & x631=x1203 & Zero=x1204 & new_primModNatS01(x631, x1202, x1203, x1204)=Succ(x633) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x631))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x631, Zero, x631, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x631, x1202, x1203, x1204)=Succ(x633) which results in the following new constraints: (3) (new_primModNatS02(x1206, x1205)=Succ(x633) & Zero=x1205 & x1206=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1206))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1206, Zero, x1206, Zero)))) (4) (new_primModNatS01(x1210, x1209, x1208, x1207)=Succ(x633) & Zero=x1209 & x1210=Succ(x1208) & Zero=Succ(x1207) & (\/x1211:new_primModNatS01(x1210, x1209, x1208, x1207)=Succ(x1211) & Zero=x1209 & x1210=x1208 & Zero=x1207 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1210))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1210, Zero, x1210, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1210))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1210, Zero, x1210, Zero)))) (5) (new_primModNatS02(x1214, x1213)=Succ(x633) & Zero=x1213 & x1214=Succ(x1212) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1214))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1214, Zero, x1214, Zero)))) (6) (Succ(Succ(x1217))=Succ(x633) & Zero=x1216 & x1217=Zero & Zero=Succ(x1215) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1217))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1217, Zero, x1217, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x1218 & new_primModNatS02(x1218, x1205)=Succ(x633) & Zero=x1205 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Succ(x1212)=x1225 & new_primModNatS02(x1225, x1213)=Succ(x633) & Zero=x1213 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1212)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1212), Zero, Succ(x1212), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1218, x1205)=Succ(x633) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1220), Succ(x1219)), Succ(x1219))=Succ(x633) & Zero=x1220 & Zero=x1219 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1225, x1213)=Succ(x633) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1227), Succ(x1226)), Succ(x1226))=Succ(x633) & Succ(x1212)=x1227 & Zero=x1226 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1212)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1212), Zero, Succ(x1212), 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(Succ(Succ(Succ(x1212)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1212), Zero, Succ(x1212), Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x660))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x660)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'2(x661, Pos(Succ(x662))) -> new_gcd0Gcd'1(False, x661, Pos(Succ(x662))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x660)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'2(x661, Pos(Succ(x662))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x660)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x660)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x660)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x660)))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x695))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x695)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'2(x696, Neg(Succ(x697))) -> new_gcd0Gcd'1(False, x696, Neg(Succ(x697))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x695)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'2(x696, Neg(Succ(x697))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x695)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x695)))), Neg(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(Zero))), Pos(Succ(Succ(Succ(x695)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x695)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x724))))), Pos(Succ(Succ(Succ(Succ(x725)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x725))))), Pos(new_primModNatS01(Succ(Succ(x724)), Succ(Succ(x725)), x724, x725))), new_gcd0Gcd'2(x726, Pos(Succ(x727))) -> new_gcd0Gcd'1(False, x726, Pos(Succ(x727))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x725))))), Pos(new_primModNatS01(Succ(Succ(x724)), Succ(Succ(x725)), x724, x725)))=new_gcd0Gcd'2(x726, Pos(Succ(x727))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x724))))), Pos(Succ(Succ(Succ(Succ(x725))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x725))))), Pos(new_primModNatS01(Succ(Succ(x724)), Succ(Succ(x725)), x724, x725)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x724))=x1232 & Succ(Succ(x725))=x1233 & new_primModNatS01(x1232, x1233, x724, x725)=Succ(x727) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x724))))), Pos(Succ(Succ(Succ(Succ(x725))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x725))))), Pos(new_primModNatS01(Succ(Succ(x724)), Succ(Succ(x725)), x724, x725)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1232, x1233, x724, x725)=Succ(x727) which results in the following new constraints: (3) (new_primModNatS02(x1235, x1234)=Succ(x727) & Succ(Succ(Zero))=x1235 & Succ(Succ(Zero))=x1234 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1239, x1238, x1237, x1236)=Succ(x727) & Succ(Succ(Succ(x1237)))=x1239 & Succ(Succ(Succ(x1236)))=x1238 & (\/x1240:new_primModNatS01(x1239, x1238, x1237, x1236)=Succ(x1240) & Succ(Succ(x1237))=x1239 & Succ(Succ(x1236))=x1238 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1237))))), Pos(Succ(Succ(Succ(Succ(x1236))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x1236))))), Pos(new_primModNatS01(Succ(Succ(x1237)), Succ(Succ(x1236)), x1237, x1236)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1237)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1236)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1236)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1237))), Succ(Succ(Succ(x1236))), Succ(x1237), Succ(x1236))))) (5) (new_primModNatS02(x1243, x1242)=Succ(x727) & Succ(Succ(Succ(x1241)))=x1243 & Succ(Succ(Zero))=x1242 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1241)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1241))), Succ(Succ(Zero)), Succ(x1241), Zero)))) (6) (Succ(Succ(x1246))=Succ(x727) & Succ(Succ(Zero))=x1246 & Succ(Succ(Succ(x1244)))=x1245 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1244))), Zero, Succ(x1244))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1235, x1234)=Succ(x727) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1248), Succ(x1247)), Succ(x1247))=Succ(x727) & Succ(Succ(Zero))=x1248 & Succ(Succ(Zero))=x1247 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1239, x1238, x1237, x1236)=Succ(x727) & Succ(Succ(Succ(x1237)))=x1239 & Succ(Succ(Succ(x1236)))=x1238 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1237)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1236)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1236)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1237))), Succ(Succ(Succ(x1236))), Succ(x1237), Succ(x1236))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1243, x1242)=Succ(x727) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1267), Succ(x1266)), Succ(x1266))=Succ(x727) & Succ(Succ(Succ(x1241)))=x1267 & Succ(Succ(Zero))=x1266 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1241)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1241))), Succ(Succ(Zero)), Succ(x1241), Zero)))) We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1244))), Zero, Succ(x1244))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1239, x1238, x1237, x1236)=Succ(x727) which results in the following new constraints: (12) (new_primModNatS02(x1254, x1253)=Succ(x727) & Succ(Succ(Succ(Zero)))=x1254 & Succ(Succ(Succ(Zero)))=x1253 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1258, x1257, x1256, x1255)=Succ(x727) & Succ(Succ(Succ(Succ(x1256))))=x1258 & Succ(Succ(Succ(Succ(x1255))))=x1257 & (\/x1259:new_primModNatS01(x1258, x1257, x1256, x1255)=Succ(x1259) & Succ(Succ(Succ(x1256)))=x1258 & Succ(Succ(Succ(x1255)))=x1257 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1256)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1255)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1255)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1256))), Succ(Succ(Succ(x1255))), Succ(x1256), Succ(x1255))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1256))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1256)))), Succ(Succ(Succ(Succ(x1255)))), Succ(Succ(x1256)), Succ(Succ(x1255)))))) (14) (new_primModNatS02(x1262, x1261)=Succ(x727) & Succ(Succ(Succ(Succ(x1260))))=x1262 & Succ(Succ(Succ(Zero)))=x1261 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1260))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1260)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1260)), Succ(Zero))))) (15) (Succ(Succ(x1265))=Succ(x727) & Succ(Succ(Succ(Zero)))=x1265 & Succ(Succ(Succ(Succ(x1263))))=x1264 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1263)))), Succ(Zero), Succ(Succ(x1263)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1256))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1256)))), Succ(Succ(Succ(Succ(x1255)))), Succ(Succ(x1256)), Succ(Succ(x1255)))))) 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(Succ(x1260))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1260)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1260)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1263)))), Succ(Zero), Succ(Succ(x1263)))))) 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(Succ(x1241)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1241))), Succ(Succ(Zero)), Succ(x1241), Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x786)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x786))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'2(x787, Pos(Succ(x788))) -> new_gcd0Gcd'1(False, x787, Pos(Succ(x788))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x786))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'2(x787, Pos(Succ(x788))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x786))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x786))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x786))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x786))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero))))), new_gcd0Gcd'2(x819, Pos(Succ(x820))) -> new_gcd0Gcd'1(False, x819, Pos(Succ(x820))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))=new_gcd0Gcd'2(x819, Pos(Succ(x820))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x818)=x1272 & Succ(Succ(Zero))=x1273 & new_primModNatS1(x1272, x1273)=Succ(x820) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1272, x1273)=Succ(x820) which results in the following new constraints: (3) (Succ(Zero)=Succ(x820) & Succ(x818)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1274) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x820) & Succ(x818)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x1276), Zero)=Succ(x820) & Succ(x818)=Succ(Succ(x1276)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x1278, x1277, x1278, x1277)=Succ(x820) & Succ(x818)=Succ(Succ(x1278)) & Succ(Succ(Zero))=Succ(x1277) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x818))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x818), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x1278=x1279 & x1277=x1280 & new_primModNatS01(x1278, x1277, x1279, x1280)=Succ(x820) & Succ(Zero)=x1277 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1278)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1278)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1278, x1277, x1279, x1280)=Succ(x820) which results in the following new constraints: (9) (new_primModNatS02(x1282, x1281)=Succ(x820) & x1282=Zero & x1281=Zero & Succ(Zero)=x1281 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1282)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1282)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x1286, x1285, x1284, x1283)=Succ(x820) & x1286=Succ(x1284) & x1285=Succ(x1283) & Succ(Zero)=x1285 & (\/x1287:new_primModNatS01(x1286, x1285, x1284, x1283)=Succ(x1287) & x1286=x1284 & x1285=x1283 & Succ(Zero)=x1285 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1286)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1286)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1286)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1286)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x1290, x1289)=Succ(x820) & x1290=Succ(x1288) & x1289=Zero & Succ(Zero)=x1289 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1290)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1290)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x1293))=Succ(x820) & x1293=Zero & x1292=Succ(x1291) & Succ(Zero)=x1292 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1293)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1293)), Succ(Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1284))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1284))), Succ(Succ(Zero)))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_gcd0Gcd'2(x850, Pos(Succ(x851))) -> new_gcd0Gcd'1(False, x850, Pos(Succ(x851))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_gcd0Gcd'2(x850, Pos(Succ(x851))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x852))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x852, Zero, x852, Zero))), new_gcd0Gcd'2(x853, Pos(Succ(x854))) -> new_gcd0Gcd'1(False, x853, Pos(Succ(x854))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x852, Zero, x852, Zero)))=new_gcd0Gcd'2(x853, Pos(Succ(x854))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x852))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x852, Zero, x852, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x1296 & x852=x1297 & Zero=x1298 & new_primModNatS01(x852, x1296, x1297, x1298)=Succ(x854) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x852))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x852, Zero, x852, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x852, x1296, x1297, x1298)=Succ(x854) which results in the following new constraints: (3) (new_primModNatS02(x1300, x1299)=Succ(x854) & Zero=x1299 & x1300=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1300))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1300, Zero, x1300, Zero)))) (4) (new_primModNatS01(x1304, x1303, x1302, x1301)=Succ(x854) & Zero=x1303 & x1304=Succ(x1302) & Zero=Succ(x1301) & (\/x1305:new_primModNatS01(x1304, x1303, x1302, x1301)=Succ(x1305) & Zero=x1303 & x1304=x1302 & Zero=x1301 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1304))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1304, Zero, x1304, Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1304))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1304, Zero, x1304, Zero)))) (5) (new_primModNatS02(x1308, x1307)=Succ(x854) & Zero=x1307 & x1308=Succ(x1306) & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1308))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1308, Zero, x1308, Zero)))) (6) (Succ(Succ(x1311))=Succ(x854) & Zero=x1310 & x1311=Zero & Zero=Succ(x1309) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1311))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1311, Zero, x1311, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x1312 & new_primModNatS02(x1312, x1299)=Succ(x854) & Zero=x1299 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Succ(x1306)=x1319 & new_primModNatS02(x1319, x1307)=Succ(x854) & Zero=x1307 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1306)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1306), Zero, Succ(x1306), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1312, x1299)=Succ(x854) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1314), Succ(x1313)), Succ(x1313))=Succ(x854) & Zero=x1314 & Zero=x1313 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1319, x1307)=Succ(x854) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1321), Succ(x1320)), Succ(x1320))=Succ(x854) & Succ(x1306)=x1321 & Zero=x1320 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1306)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1306), Zero, Succ(x1306), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1306)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1306), Zero, Succ(x1306), Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x890))))), Pos(Succ(Succ(Succ(Succ(x891)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x891))))), Neg(new_primModNatS01(Succ(Succ(x890)), Succ(Succ(x891)), x890, x891))), new_gcd0Gcd'2(x892, Neg(Succ(x893))) -> new_gcd0Gcd'1(False, x892, Neg(Succ(x893))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x891))))), Neg(new_primModNatS01(Succ(Succ(x890)), Succ(Succ(x891)), x890, x891)))=new_gcd0Gcd'2(x892, Neg(Succ(x893))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x890))))), Pos(Succ(Succ(Succ(Succ(x891))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x891))))), Neg(new_primModNatS01(Succ(Succ(x890)), Succ(Succ(x891)), x890, x891)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x890))=x1326 & Succ(Succ(x891))=x1327 & new_primModNatS01(x1326, x1327, x890, x891)=Succ(x893) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x890))))), Pos(Succ(Succ(Succ(Succ(x891))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x891))))), Neg(new_primModNatS01(Succ(Succ(x890)), Succ(Succ(x891)), x890, x891)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1326, x1327, x890, x891)=Succ(x893) which results in the following new constraints: (3) (new_primModNatS02(x1329, x1328)=Succ(x893) & Succ(Succ(Zero))=x1329 & Succ(Succ(Zero))=x1328 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1333, x1332, x1331, x1330)=Succ(x893) & Succ(Succ(Succ(x1331)))=x1333 & Succ(Succ(Succ(x1330)))=x1332 & (\/x1334:new_primModNatS01(x1333, x1332, x1331, x1330)=Succ(x1334) & Succ(Succ(x1331))=x1333 & Succ(Succ(x1330))=x1332 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1331))))), Pos(Succ(Succ(Succ(Succ(x1330))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x1330))))), Neg(new_primModNatS01(Succ(Succ(x1331)), Succ(Succ(x1330)), x1331, x1330)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1331)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1330)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1330)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1331))), Succ(Succ(Succ(x1330))), Succ(x1331), Succ(x1330))))) (5) (new_primModNatS02(x1337, x1336)=Succ(x893) & Succ(Succ(Succ(x1335)))=x1337 & Succ(Succ(Zero))=x1336 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1335)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1335))), Succ(Succ(Zero)), Succ(x1335), Zero)))) (6) (Succ(Succ(x1340))=Succ(x893) & Succ(Succ(Zero))=x1340 & Succ(Succ(Succ(x1338)))=x1339 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1338))), Zero, Succ(x1338))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1329, x1328)=Succ(x893) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1342), Succ(x1341)), Succ(x1341))=Succ(x893) & Succ(Succ(Zero))=x1342 & Succ(Succ(Zero))=x1341 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1333, x1332, x1331, x1330)=Succ(x893) & Succ(Succ(Succ(x1331)))=x1333 & Succ(Succ(Succ(x1330)))=x1332 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1331)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1330)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1330)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1331))), Succ(Succ(Succ(x1330))), Succ(x1331), Succ(x1330))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1337, x1336)=Succ(x893) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1361), Succ(x1360)), Succ(x1360))=Succ(x893) & Succ(Succ(Succ(x1335)))=x1361 & Succ(Succ(Zero))=x1360 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1335)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1335))), Succ(Succ(Zero)), Succ(x1335), Zero)))) We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1338))), Zero, Succ(x1338))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1333, x1332, x1331, x1330)=Succ(x893) which results in the following new constraints: (12) (new_primModNatS02(x1348, x1347)=Succ(x893) & Succ(Succ(Succ(Zero)))=x1348 & Succ(Succ(Succ(Zero)))=x1347 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1352, x1351, x1350, x1349)=Succ(x893) & Succ(Succ(Succ(Succ(x1350))))=x1352 & Succ(Succ(Succ(Succ(x1349))))=x1351 & (\/x1353:new_primModNatS01(x1352, x1351, x1350, x1349)=Succ(x1353) & Succ(Succ(Succ(x1350)))=x1352 & Succ(Succ(Succ(x1349)))=x1351 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1350)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1349)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1349)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1350))), Succ(Succ(Succ(x1349))), Succ(x1350), Succ(x1349))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1350))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1350)))), Succ(Succ(Succ(Succ(x1349)))), Succ(Succ(x1350)), Succ(Succ(x1349)))))) (14) (new_primModNatS02(x1356, x1355)=Succ(x893) & Succ(Succ(Succ(Succ(x1354))))=x1356 & Succ(Succ(Succ(Zero)))=x1355 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1354))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1354)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1354)), Succ(Zero))))) (15) (Succ(Succ(x1359))=Succ(x893) & Succ(Succ(Succ(Zero)))=x1359 & Succ(Succ(Succ(Succ(x1357))))=x1358 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1357)))), Succ(Zero), Succ(Succ(x1357)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1350))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1350)))), Succ(Succ(Succ(Succ(x1349)))), Succ(Succ(x1350)), Succ(Succ(x1349)))))) 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(Succ(x1354))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1354)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1354)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1357)))), Succ(Zero), Succ(Succ(x1357)))))) 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(Succ(x1335)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1335))), Succ(Succ(Zero)), Succ(x1335), Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x949)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x949))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'2(x950, Neg(Succ(x951))) -> new_gcd0Gcd'1(False, x950, Neg(Succ(x951))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x949))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'2(x950, Neg(Succ(x951))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x949))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x949))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x949))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x949))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(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, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero))))), new_gcd0Gcd'2(x982, Neg(Succ(x983))) -> new_gcd0Gcd'1(False, x982, Neg(Succ(x983))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))=new_gcd0Gcd'2(x982, Neg(Succ(x983))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x981)=x1366 & Succ(Succ(Zero))=x1367 & new_primModNatS1(x1366, x1367)=Succ(x983) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1366, x1367)=Succ(x983) which results in the following new constraints: (3) (Succ(Zero)=Succ(x983) & Succ(x981)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1368) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x983) & Succ(x981)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x1370), Zero)=Succ(x983) & Succ(x981)=Succ(Succ(x1370)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x1372, x1371, x1372, x1371)=Succ(x983) & Succ(x981)=Succ(Succ(x1372)) & Succ(Succ(Zero))=Succ(x1371) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x981), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x1372=x1373 & x1371=x1374 & new_primModNatS01(x1372, x1371, x1373, x1374)=Succ(x983) & Succ(Zero)=x1371 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1372)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1372)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1372, x1371, x1373, x1374)=Succ(x983) which results in the following new constraints: (9) (new_primModNatS02(x1376, x1375)=Succ(x983) & x1376=Zero & x1375=Zero & Succ(Zero)=x1375 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1376)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1376)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x1380, x1379, x1378, x1377)=Succ(x983) & x1380=Succ(x1378) & x1379=Succ(x1377) & Succ(Zero)=x1379 & (\/x1381:new_primModNatS01(x1380, x1379, x1378, x1377)=Succ(x1381) & x1380=x1378 & x1379=x1377 & Succ(Zero)=x1379 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1380)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1380)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1380)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1380)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x1384, x1383)=Succ(x983) & x1384=Succ(x1382) & x1383=Zero & Succ(Zero)=x1383 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1384)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1384)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x1387))=Succ(x983) & x1387=Zero & x1386=Succ(x1385) & Succ(Zero)=x1386 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1387)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1387)), Succ(Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1378))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1378))), Succ(Succ(Zero)))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_gcd0Gcd'2(x1010, Neg(Succ(x1011))) -> new_gcd0Gcd'1(False, x1010, Neg(Succ(x1011))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_gcd0Gcd'2(x1010, Neg(Succ(x1011))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1015))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1015, Zero, x1015, Zero))), new_gcd0Gcd'2(x1016, Neg(Succ(x1017))) -> new_gcd0Gcd'1(False, x1016, Neg(Succ(x1017))) which results in the following constraint: (1) (new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1015, Zero, x1015, Zero)))=new_gcd0Gcd'2(x1016, Neg(Succ(x1017))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1015))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1015, Zero, x1015, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x1390 & x1015=x1391 & Zero=x1392 & new_primModNatS01(x1015, x1390, x1391, x1392)=Succ(x1017) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1015))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1015, Zero, x1015, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1015, x1390, x1391, x1392)=Succ(x1017) which results in the following new constraints: (3) (new_primModNatS02(x1394, x1393)=Succ(x1017) & Zero=x1393 & x1394=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1394))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1394, Zero, x1394, Zero)))) (4) (new_primModNatS01(x1398, x1397, x1396, x1395)=Succ(x1017) & Zero=x1397 & x1398=Succ(x1396) & Zero=Succ(x1395) & (\/x1399:new_primModNatS01(x1398, x1397, x1396, x1395)=Succ(x1399) & Zero=x1397 & x1398=x1396 & Zero=x1395 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1398))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1398, Zero, x1398, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1398))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1398, Zero, x1398, Zero)))) (5) (new_primModNatS02(x1402, x1401)=Succ(x1017) & Zero=x1401 & x1402=Succ(x1400) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1402))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1402, Zero, x1402, Zero)))) (6) (Succ(Succ(x1405))=Succ(x1017) & Zero=x1404 & x1405=Zero & Zero=Succ(x1403) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1405))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1405, Zero, x1405, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x1406 & new_primModNatS02(x1406, x1393)=Succ(x1017) & Zero=x1393 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Succ(x1400)=x1413 & new_primModNatS02(x1413, x1401)=Succ(x1017) & Zero=x1401 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1400)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1400), Zero, Succ(x1400), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1406, x1393)=Succ(x1017) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1408), Succ(x1407)), Succ(x1407))=Succ(x1017) & Zero=x1408 & Zero=x1407 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1413, x1401)=Succ(x1017) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1415), Succ(x1414)), Succ(x1414))=Succ(x1017) & Succ(x1400)=x1415 & Zero=x1414 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1400)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1400), Zero, Succ(x1400), 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(Succ(Succ(Succ(x1400)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1400), Zero, Succ(x1400), Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) *(new_gcd0Gcd'2(Pos(Succ(Zero)), Pos(Succ(Succ(x4))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x4))))) *(new_gcd0Gcd'2(Neg(Succ(Zero)), Pos(Succ(Succ(x7))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x7))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x40)))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x43)))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x46))))), Pos(Succ(Succ(Succ(Succ(x47))))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x50))))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x62))))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x65))))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x68))))), Pos(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x73))))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x74))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x74))), Pos(Succ(Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(x109))), Neg(Succ(Zero)))) *new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) *(new_gcd0Gcd'2(Pos(Succ(Zero)), Neg(Succ(Succ(x148))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x148))))) *(new_gcd0Gcd'2(Neg(Succ(Zero)), Neg(Succ(Succ(x151))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x151))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x154)))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x157)))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x160))))), Neg(Succ(Succ(Succ(Succ(x161))))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x164))))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x167))))), Neg(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x172))))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x179))))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x182))))), Neg(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x187))))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x212))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x212))), Pos(Succ(Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x247))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(x247))), Neg(Succ(Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x276)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x276)))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x311)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x311)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1075))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1075)))), Succ(Zero), Succ(Succ(x1075)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1056)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1056))), Zero, Succ(x1056))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1068))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1067))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1068)))), Succ(Succ(Succ(Succ(x1067)))), Succ(Succ(x1068)), Succ(Succ(x1067)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1072))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1072)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1072)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1053)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1053))), Succ(Succ(Zero)), Succ(x1053), Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x402))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x402))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1096))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1096))), Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1118)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1118), Zero, Succ(x1118), Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1169))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1169)))), Succ(Zero), Succ(Succ(x1169)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(x1150)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1150))), Zero, Succ(x1150))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1162))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1161))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1162)))), Succ(Succ(Succ(Succ(x1161)))), Succ(Succ(x1162)), Succ(Succ(x1161)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1166))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1166)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1166)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1147)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1147))), Succ(Succ(Zero)), Succ(x1147), Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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(x565))))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x565))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1190))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1190))), Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1212)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1212), Zero, Succ(x1212), Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x660)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x660)))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x695)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x695)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1263))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1263)))), Succ(Zero), Succ(Succ(x1263)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1244)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1244))), Zero, Succ(x1244))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1256))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1255))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1256)))), Succ(Succ(Succ(Succ(x1255)))), Succ(Succ(x1256)), Succ(Succ(x1255)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1260))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1260)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1260)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1241)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1241))), Succ(Succ(Zero)), Succ(x1241), Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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(x786))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x786))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1284))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1284))), Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x1306)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1306), Zero, Succ(x1306), Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1357))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1357)))), Succ(Zero), Succ(Succ(x1357)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(x1338)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1338))), Zero, Succ(x1338))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1350))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1349))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1350)))), Succ(Succ(Succ(Succ(x1349)))), Succ(Succ(x1350)), Succ(Succ(x1349)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1354))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1354)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1354)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1335)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1335))), Succ(Succ(Zero)), Succ(x1335), Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x949))))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x949))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1378))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1378))), Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x1400)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x1400), Zero, Succ(x1400), 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. ---------------------------------------- (322) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'2(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'2(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(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'2(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(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'2(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (323) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_esEs0(Integer(x0)) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (324) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (325) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (326) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) the following chains were created: *We consider the chain new_gcd0Gcd'0(x2, x3) -> new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2), new_gcd0Gcd'10(False, x4, x5) -> new_gcd0Gcd'0(x4, new_rem(x5, x4)) which results in the following constraint: (1) (new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)=new_gcd0Gcd'10(False, x4, x5) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_rem(x2, x3)=x12 & new_esEs0(x12)=False ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_esEs0(x12)=False which results in the following new constraint: (3) (new_primEqInt(x13)=False & new_rem(x2, x3)=Integer(x13) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x13)=False which results in the following new constraints: (4) (False=False & new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) (5) (False=False & new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (7) (new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'0(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Pos(Succ(x14))) which results in the following new constraint: (8) (Integer(new_primRemInt(x17, x16))=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'0(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (9) (new_primRemInt(x17, x16)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x17, x16)=Pos(Succ(x14)) which results in the following new constraints: (10) (Pos(new_primModNatS1(x19, x18))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) (11) (Pos(new_primModNatS1(x21, x20))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) (12) (new_error(ty_Int)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Pos(x24)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x24)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x24)))) (13) (new_error(ty_Int)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Neg(x25)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x25)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x25)))) (14) (new_error(ty_Int)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Pos(x26)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x26)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x26)))) (15) (new_error(ty_Int)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Integer(Neg(x27)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x27)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x27)))) We simplified constraint (10) using rules (I), (II), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'0(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) We simplified constraint (11) using rules (I), (II), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'0(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (18) (new_gcd0Gcd'0(Integer(Pos(x24)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x24)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x24)))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (19) (new_gcd0Gcd'0(Integer(Neg(x25)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x25)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x25)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Integer(Pos(x26)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x26)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x26)))) We simplified constraint (15) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_gcd0Gcd'0(Integer(Neg(x27)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x27)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x27)))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Neg(Succ(x15))) which results in the following new constraint: (22) (Integer(new_primRemInt(x35, x34))=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'0(Integer(x35), Integer(x34))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x35), Integer(x34))), Integer(x34), Integer(x35))) We simplified constraint (22) using rules (I), (II) which results in the following new constraint: (23) (new_primRemInt(x35, x34)=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(x35), Integer(x34))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x35), Integer(x34))), Integer(x34), Integer(x35))) We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x35, x34)=Neg(Succ(x15)) which results in the following new constraints: (24) (Neg(new_primModNatS1(x41, x40))=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Neg(x41)), Integer(Pos(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Pos(Succ(x40))))), Integer(Pos(Succ(x40))), Integer(Neg(x41)))) (25) (new_error(ty_Int)=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Pos(x42)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x42)))) (26) (new_error(ty_Int)=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Neg(x43)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x43)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x43)))) (27) (new_error(ty_Int)=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Pos(x44)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x44)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x44)))) (28) (new_error(ty_Int)=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Neg(x45)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x45)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x45)))) (29) (Neg(new_primModNatS1(x47, x46))=Neg(Succ(x15)) ==> new_gcd0Gcd'0(Integer(Neg(x47)), Integer(Neg(Succ(x46))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x47)), Integer(Neg(Succ(x46))))), Integer(Neg(Succ(x46))), Integer(Neg(x47)))) We simplified constraint (24) using rules (I), (II), (IV) which results in the following new constraint: (30) (new_gcd0Gcd'0(Integer(Neg(x41)), Integer(Pos(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Pos(Succ(x40))))), Integer(Pos(Succ(x40))), Integer(Neg(x41)))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (31) (new_gcd0Gcd'0(Integer(Pos(x42)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x42)))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (32) (new_gcd0Gcd'0(Integer(Neg(x43)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x43)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x43)))) We simplified constraint (27) using rules (III), (IV), (VII) which results in the following new constraint: (33) (new_gcd0Gcd'0(Integer(Pos(x44)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x44)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x44)))) We simplified constraint (28) using rules (III), (IV), (VII) which results in the following new constraint: (34) (new_gcd0Gcd'0(Integer(Neg(x45)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x45)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x45)))) We simplified constraint (29) using rules (I), (II), (IV) which results in the following new constraint: (35) (new_gcd0Gcd'0(Integer(Neg(x47)), Integer(Neg(Succ(x46))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x47)), Integer(Neg(Succ(x46))))), Integer(Neg(Succ(x46))), Integer(Neg(x47)))) For Pair new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, x6, x7) -> new_gcd0Gcd'0(x6, new_rem(x7, x6)), new_gcd0Gcd'0(x8, x9) -> new_gcd0Gcd'10(new_esEs0(new_rem(x8, x9)), x9, x8) which results in the following constraint: (1) (new_gcd0Gcd'0(x6, new_rem(x7, x6))=new_gcd0Gcd'0(x8, x9) ==> new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'0(x6, new_rem(x7, x6))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'0(x6, new_rem(x7, x6))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) *(new_gcd0Gcd'0(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) *(new_gcd0Gcd'0(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) *(new_gcd0Gcd'0(Integer(Pos(x24)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x24)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x24)))) *(new_gcd0Gcd'0(Integer(Neg(x25)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x25)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x25)))) *(new_gcd0Gcd'0(Integer(Pos(x26)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x26)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x26)))) *(new_gcd0Gcd'0(Integer(Neg(x27)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x27)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x27)))) *(new_gcd0Gcd'0(Integer(Neg(x41)), Integer(Pos(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Pos(Succ(x40))))), Integer(Pos(Succ(x40))), Integer(Neg(x41)))) *(new_gcd0Gcd'0(Integer(Pos(x42)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x42)))) *(new_gcd0Gcd'0(Integer(Neg(x43)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x43)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x43)))) *(new_gcd0Gcd'0(Integer(Pos(x44)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x44)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x44)))) *(new_gcd0Gcd'0(Integer(Neg(x45)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x45)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x45)))) *(new_gcd0Gcd'0(Integer(Neg(x47)), Integer(Neg(Succ(x46))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x47)), Integer(Neg(Succ(x46))))), Integer(Neg(Succ(x46))), Integer(Neg(x47)))) *new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) *(new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'0(x6, new_rem(x7, x6))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_esEs0(Integer(x0)) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vyv657, vyv656) -> new_gcd0Gcd'10(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)),new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0))) ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_esEs0(Integer(x0)) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)),new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0))) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_error(h) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_esEs0(Integer(x0)) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) 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. ---------------------------------------- (333) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_esEs0(Integer(x0)) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (334) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs0(Integer(x0)) ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, vyv656, vyv657) -> new_gcd0Gcd'0(vyv656, new_rem(vyv657, vyv656)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))),new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1)))) ---------------------------------------- (337) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(h) -> error([]) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (338) 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. ---------------------------------------- (339) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_rem(Integer(x0), Integer(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (340) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_rem(Integer(x0), Integer(x1)) ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0)))) (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0)))) (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0)))) (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Pos(x0)))) (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0)))) (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0)))) (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0)))) (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0)))) ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Pos(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0)))) ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Neg(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0)))) ---------------------------------------- (349) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (350) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (351) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (352) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Neg(Zero)), Integer(Pos(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0))),new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0)))) ---------------------------------------- (353) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (354) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (355) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (356) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error(ty_Int)), Integer(Pos(Zero)), Integer(Neg(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0))),new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0)))) ---------------------------------------- (357) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (358) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (359) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (360) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'0(Integer(x1), Integer(new_primRemInt(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int))),new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int)))) (new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int))),new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int)))) (new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int))),new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int)))) (new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int))),new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int)))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1))))) ---------------------------------------- (361) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(new_error(ty_Int))) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(new_error(ty_Int))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (362) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (363) Complex Obligation (AND) ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) 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. ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (367) 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(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_error(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) ---------------------------------------- (368) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (369) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (370) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (371) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (372) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (373) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (374) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (375) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (376) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (377) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (382) Complex Obligation (AND) ---------------------------------------- (383) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (384) 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. ---------------------------------------- (385) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (387) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (388) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (397) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (398) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (399) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (401) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (402) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (403) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (404) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) ---------------------------------------- (405) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (406) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) ---------------------------------------- (407) YES ---------------------------------------- (408) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (409) 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. ---------------------------------------- (410) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (411) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (412) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (413) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (414) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (415) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (416) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (417) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (418) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (419) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (420) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (421) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (422) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (423) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (424) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (425) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (426) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (427) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (428) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (429) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (430) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (431) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (432) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (433) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (434) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (435) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (436) Complex Obligation (AND) ---------------------------------------- (437) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (438) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (439) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (440) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (441) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (442) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (443) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (444) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) ---------------------------------------- (445) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (446) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x9), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x8), Succ(Zero)))=x20 & new_primEqInt(x20)=False ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x8), Succ(Zero)))=Neg(Succ(x21)) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x8)=x22 & Succ(Zero)=x23 & new_primModNatS1(x22, x23)=Succ(x21) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x22, x23)=Succ(x21) which results in the following new constraints: (5) (new_primModNatS01(x25, x24, x25, x24)=Succ(x21) & Succ(x8)=Succ(Succ(x25)) & Succ(Zero)=Succ(x24) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x21) & Succ(x8)=Succ(Zero) & Succ(Zero)=Succ(x26) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (x25=x28 & x24=x29 & new_primModNatS01(x25, x24, x28, x29)=Succ(x21) & Zero=x24 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x25)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x25)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x25)))))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x25, x24, x28, x29)=Succ(x21) which results in the following new constraints: (9) (new_primModNatS02(x31, x30)=Succ(x21) & x31=Zero & x30=Zero & Zero=x30 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x31)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x31)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x31)))))))) (10) (new_primModNatS01(x35, x34, x33, x32)=Succ(x21) & x35=Succ(x33) & x34=Succ(x32) & Zero=x34 & (\/x36:new_primModNatS01(x35, x34, x33, x32)=Succ(x36) & x35=x33 & x34=x32 & Zero=x34 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x35)))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x35)))))))) (11) (new_primModNatS02(x39, x38)=Succ(x21) & x39=Succ(x37) & x38=Zero & Zero=x38 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x39)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x39)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x39)))))))) (12) (Succ(Succ(x42))=Succ(x21) & x42=Zero & x41=Succ(x40) & Zero=x41 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x42)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x42)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x42)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero))))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x18))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x17)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) which results in the following new constraints: (3) (new_primModNatS01(x50, x49, x50, x49)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Succ(x50)) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))) (4) (Succ(Zero)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Zero) & Succ(Zero)=Succ(x51) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x50=x53 & x49=x54 & new_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) & Zero=x49 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x50)), Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(x18))) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x18))) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x61))) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(x18))) & x64=Succ(x62) & x63=Zero & Zero=x63 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(x18))) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))) *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (447) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (448) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (449) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) ---------------------------------------- (450) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (451) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS01(Succ(x3), Succ(x2), x3, x2)))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Neg(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x4), Succ(x5), x4, x5))), Integer(Neg(Succ(Succ(Succ(x5))))), Integer(Neg(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Neg(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x3)=x12 & Succ(x2)=x13 & new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) & Succ(Zero)=x15 & Succ(Zero)=x14 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x20))) & Succ(x17)=x19 & Succ(x16)=x18 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Neg(new_primModNatS01(Succ(x17), Succ(x16), x17, x16))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(x5))) & Succ(Zero)=x26 & Succ(Succ(x24))=x25 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(x5))) & Succ(Zero)=x28 & Succ(Zero)=x27 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x34 & Succ(Succ(Zero))=x33 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x39))) & Succ(Succ(x36))=x38 & Succ(Succ(x35))=x37 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x36)), Succ(Succ(x35)), Succ(x36), Succ(x35)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x40)))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x45 & Succ(Succ(Succ(x43)))=x44 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(new_primModNatS01(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))=x52 & new_primEqInt(x52)=False ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))=Neg(Succ(x53)) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x6)=x54 & Succ(x7)=x55 & new_primModNatS01(x54, x55, x6, x7)=Succ(x53) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS02(x57, x56)=Succ(x53) & Succ(Zero)=x57 & Succ(Zero)=x56 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 & (\/x62:new_primModNatS01(x61, x60, x59, x58)=Succ(x62) & Succ(x59)=x61 & Succ(x58)=x60 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x59))))), Integer(Neg(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x59), Succ(x58), x59, x58))), Integer(Neg(Succ(Succ(Succ(x58))))), Integer(Neg(Succ(Succ(Succ(x59))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))) (7) (new_primModNatS02(x65, x64)=Succ(x53) & Succ(Succ(x63))=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) (8) (Succ(Succ(x68))=Succ(x53) & Succ(Zero)=x68 & Succ(Succ(x66))=x67 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x57, x56)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Zero)=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x65, x64)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x89), Succ(x88)), Succ(x88))=Succ(x53) & Succ(Succ(x63))=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x61, x60, x59, x58)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS02(x76, x75)=Succ(x53) & Succ(Succ(Zero))=x76 & Succ(Succ(Zero))=x75 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x80, x79, x78, x77)=Succ(x53) & Succ(Succ(Succ(x78)))=x80 & Succ(Succ(Succ(x77)))=x79 & (\/x81:new_primModNatS01(x80, x79, x78, x77)=Succ(x81) & Succ(Succ(x78))=x80 & Succ(Succ(x77))=x79 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x78)))))), Integer(Neg(Succ(Succ(Succ(Succ(x77)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x78)), Succ(Succ(x77)), Succ(x78), Succ(x77)))), Integer(Neg(Succ(Succ(Succ(Succ(x77)))))), Integer(Neg(Succ(Succ(Succ(Succ(x78)))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) (16) (new_primModNatS02(x84, x83)=Succ(x53) & Succ(Succ(Succ(x82)))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) (17) (Succ(Succ(x87))=Succ(x53) & Succ(Succ(Zero))=x87 & Succ(Succ(Succ(x85)))=x86 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (452) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (453) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (455) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_error(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) ---------------------------------------- (457) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (458) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (459) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (460) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (461) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (462) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (463) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (465) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (467) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (469) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (471) Complex Obligation (AND) ---------------------------------------- (472) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (473) 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. ---------------------------------------- (474) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (475) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (476) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (477) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (478) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (479) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) ---------------------------------------- (480) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (481) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (482) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (483) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (484) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (485) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (486) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (487) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (488) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (490) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, 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_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (493) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) ---------------------------------------- (494) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vyv601000))) -> False new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (495) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) ---------------------------------------- (496) YES ---------------------------------------- (497) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (498) 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. ---------------------------------------- (499) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (500) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (501) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (502) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (503) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (504) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (505) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (506) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (507) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (508) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (509) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (510) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (511) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (512) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (513) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (514) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (515) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (516) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (517) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (518) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (519) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (520) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (521) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (522) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (523) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (524) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (525) Complex Obligation (AND) ---------------------------------------- (526) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (528) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (529) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (530) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (531) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (532) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (533) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (534) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (535) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x9), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x8), Succ(Zero)))=x20 & new_primEqInt(x20)=False ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x8), Succ(Zero)))=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x8)=x22 & Succ(Zero)=x23 & new_primModNatS1(x22, x23)=Succ(x21) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x22, x23)=Succ(x21) which results in the following new constraints: (5) (new_primModNatS01(x25, x24, x25, x24)=Succ(x21) & Succ(x8)=Succ(Succ(x25)) & Succ(Zero)=Succ(x24) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x21) & Succ(x8)=Succ(Zero) & Succ(Zero)=Succ(x26) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (x25=x28 & x24=x29 & new_primModNatS01(x25, x24, x28, x29)=Succ(x21) & Zero=x24 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x25)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x25)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x25)))))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x25, x24, x28, x29)=Succ(x21) which results in the following new constraints: (9) (new_primModNatS02(x31, x30)=Succ(x21) & x31=Zero & x30=Zero & Zero=x30 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x31)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x31)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x31)))))))) (10) (new_primModNatS01(x35, x34, x33, x32)=Succ(x21) & x35=Succ(x33) & x34=Succ(x32) & Zero=x34 & (\/x36:new_primModNatS01(x35, x34, x33, x32)=Succ(x36) & x35=x33 & x34=x32 & Zero=x34 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x35)))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x35)))))))) (11) (new_primModNatS02(x39, x38)=Succ(x21) & x39=Succ(x37) & x38=Zero & Zero=x38 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x39)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x39)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x39)))))))) (12) (Succ(Succ(x42))=Succ(x21) & x42=Zero & x41=Succ(x40) & Zero=x41 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x42)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x42)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x42)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero))))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x18))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x17)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) which results in the following new constraints: (3) (new_primModNatS01(x50, x49, x50, x49)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Succ(x50)) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) (4) (Succ(Zero)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Zero) & Succ(Zero)=Succ(x51) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x50=x53 & x49=x54 & new_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) & Zero=x49 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x50)), Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(x18))) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x18))) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x61))) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(x18))) & x64=Succ(x62) & x63=Zero & Zero=x63 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(x18))) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))) *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (536) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (537) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (538) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (539) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (540) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS01(Succ(x3), Succ(x2), x3, x2)))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x4), Succ(x5), x4, x5))), Integer(Pos(Succ(Succ(Succ(x5))))), Integer(Pos(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x3)=x12 & Succ(x2)=x13 & new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) & Succ(Zero)=x15 & Succ(Zero)=x14 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x20))) & Succ(x17)=x19 & Succ(x16)=x18 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x16))))), Integer(Pos(new_primModNatS01(Succ(x17), Succ(x16), x17, x16))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(x5))) & Succ(Zero)=x26 & Succ(Succ(x24))=x25 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(x5))) & Succ(Zero)=x28 & Succ(Zero)=x27 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x34 & Succ(Succ(Zero))=x33 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x39))) & Succ(Succ(x36))=x38 & Succ(Succ(x35))=x37 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x36)), Succ(Succ(x35)), Succ(x36), Succ(x35)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x40)))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x45 & Succ(Succ(Succ(x43)))=x44 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(new_primModNatS01(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))=x52 & new_primEqInt(x52)=False ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))=Pos(Succ(x53)) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x6)=x54 & Succ(x7)=x55 & new_primModNatS01(x54, x55, x6, x7)=Succ(x53) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS02(x57, x56)=Succ(x53) & Succ(Zero)=x57 & Succ(Zero)=x56 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 & (\/x62:new_primModNatS01(x61, x60, x59, x58)=Succ(x62) & Succ(x59)=x61 & Succ(x58)=x60 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x59))))), Integer(Pos(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x59), Succ(x58), x59, x58))), Integer(Pos(Succ(Succ(Succ(x58))))), Integer(Pos(Succ(Succ(Succ(x59))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))) (7) (new_primModNatS02(x65, x64)=Succ(x53) & Succ(Succ(x63))=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) (8) (Succ(Succ(x68))=Succ(x53) & Succ(Zero)=x68 & Succ(Succ(x66))=x67 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x57, x56)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Zero)=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x65, x64)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x89), Succ(x88)), Succ(x88))=Succ(x53) & Succ(Succ(x63))=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x61, x60, x59, x58)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS02(x76, x75)=Succ(x53) & Succ(Succ(Zero))=x76 & Succ(Succ(Zero))=x75 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x80, x79, x78, x77)=Succ(x53) & Succ(Succ(Succ(x78)))=x80 & Succ(Succ(Succ(x77)))=x79 & (\/x81:new_primModNatS01(x80, x79, x78, x77)=Succ(x81) & Succ(Succ(x78))=x80 & Succ(Succ(x77))=x79 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x78)))))), Integer(Pos(Succ(Succ(Succ(Succ(x77)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x78)), Succ(Succ(x77)), Succ(x78), Succ(x77)))), Integer(Pos(Succ(Succ(Succ(Succ(x77)))))), Integer(Pos(Succ(Succ(Succ(Succ(x78)))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) (16) (new_primModNatS02(x84, x83)=Succ(x53) & Succ(Succ(Succ(x82)))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) (17) (Succ(Succ(x87))=Succ(x53) & Succ(Succ(Zero))=x87 & Succ(Succ(Succ(x85)))=x86 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (541) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (542) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMinusNatS1 -> Zero new_error(h) -> error([]) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (543) 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. ---------------------------------------- (544) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS1(Zero, x0) new_error(x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) new_primRemInt(Neg(x0), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (545) 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(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_error(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) ---------------------------------------- (546) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (547) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (548) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'0(Integer(Neg(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (549) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (550) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (551) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (552) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (553) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (554) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (556) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (557) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (558) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (560) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (561) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) ---------------------------------------- (562) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (563) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (564) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (565) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (566) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (567) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (568) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (569) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (570) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (571) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (572) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (573) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (574) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (575) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (576) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (577) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (578) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (579) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS01(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (580) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (581) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (582) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (583) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (584) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (585) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))))) ---------------------------------------- (586) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (587) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (588) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (589) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero)))))) ---------------------------------------- (590) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (591) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (594) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (596) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'0(Integer(Pos(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (597) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (598) Complex Obligation (AND) ---------------------------------------- (599) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (600) 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. ---------------------------------------- (601) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (602) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (603) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (604) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (605) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (606) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (607) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (608) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (609) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (610) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (611) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (612) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (613) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (614) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (615) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (616) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) ---------------------------------------- (617) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (618) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) ---------------------------------------- (619) YES ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (622) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (623) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (624) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (625) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (628) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (629) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) ---------------------------------------- (630) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (631) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (634) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (635) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (636) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (637) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (640) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (641) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (642) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (643) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) ---------------------------------------- (644) YES ---------------------------------------- (645) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (646) 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. ---------------------------------------- (647) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS0(x0) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (648) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (649) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (650) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (651) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (652) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (653) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (654) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (655) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (656) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (657) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (658) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (659) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (660) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (661) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (662) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (663) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (664) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (665) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (666) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (667) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (668) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (669) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (670) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS01(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (671) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (672) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (673) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (674) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (675) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (676) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (677) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (678) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (679) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (680) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (681) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (682) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (683) Complex Obligation (AND) ---------------------------------------- (684) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (685) 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. ---------------------------------------- (686) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (687) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (688) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (689) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (690) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (691) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (692) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (693) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x9))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x9), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x9))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero))))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x10)=x20 & Succ(Zero)=x21 & new_primModNatS1(x20, x21)=Succ(Succ(Succ(x11))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x21)=Succ(Succ(Succ(x11))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(x11))) & Succ(x10)=Succ(Zero) & Succ(Zero)=Succ(x22) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) (4) (new_primModNatS01(x24, x23, x24, x23)=Succ(Succ(Succ(x11))) & Succ(x10)=Succ(Succ(x24)) & Succ(Zero)=Succ(x23) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x24=x26 & x23=x27 & new_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x11))) & Zero=x23 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x24)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x24)), Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x11))) which results in the following new constraints: (6) (new_primModNatS02(x29, x28)=Succ(Succ(Succ(x11))) & x29=Zero & x28=Zero & Zero=x28 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x29)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x29)), Succ(Zero)))))) (7) (new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x11))) & x33=Succ(x31) & x32=Succ(x30) & Zero=x32 & (\/x34:new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x34))) & x33=x31 & x32=x30 & Zero=x32 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) (8) (new_primModNatS02(x37, x36)=Succ(Succ(Succ(x11))) & x37=Succ(x35) & x36=Zero & Zero=x36 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x37)), Succ(Zero)))))) (9) (Succ(Succ(x40))=Succ(Succ(Succ(x11))) & x40=Zero & x39=Succ(x38) & Zero=x39 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x40)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x18), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x17), Succ(Zero)))=x45 & new_primEqInt(x45)=False ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x45)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x17), Succ(Zero)))=Pos(Succ(x46)) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x17)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(x46) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(x46) which results in the following new constraints: (5) (Succ(Zero)=Succ(x46) & Succ(x17)=Succ(Zero) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) (6) (new_primModNatS01(x51, x50, x51, x50)=Succ(x46) & Succ(x17)=Succ(Succ(x51)) & Succ(Zero)=Succ(x50) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x51=x53 & x50=x54 & new_primModNatS01(x51, x50, x53, x54)=Succ(x46) & Zero=x50 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x51)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x51)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x51)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS02(x56, x55)=Succ(x46) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) (10) (new_primModNatS01(x60, x59, x58, x57)=Succ(x46) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(x61) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) (11) (new_primModNatS02(x64, x63)=Succ(x46) & x64=Succ(x62) & x63=Zero & Zero=x63 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x64)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x64)))))))) (12) (Succ(Succ(x67))=Succ(x46) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x67)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))) We solved constraint (12) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Zero)))))) *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (694) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (695) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) 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. ---------------------------------------- (697) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (699) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (700) 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. ---------------------------------------- (701) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (702) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero))))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x4)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x4)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x3)=x20 & Succ(Zero)=x21 & new_primModNatS1(x20, x21)=Succ(Succ(Succ(x4))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x21)=Succ(Succ(Succ(x4))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(x4))) & Succ(x3)=Succ(Zero) & Succ(Zero)=Succ(x22) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) (4) (new_primModNatS01(x24, x23, x24, x23)=Succ(Succ(Succ(x4))) & Succ(x3)=Succ(Succ(x24)) & Succ(Zero)=Succ(x23) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x24=x26 & x23=x27 & new_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x4))) & Zero=x23 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x24)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x24)), Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x4))) which results in the following new constraints: (6) (new_primModNatS02(x29, x28)=Succ(Succ(Succ(x4))) & x29=Zero & x28=Zero & Zero=x28 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x29)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x29)), Succ(Zero)))))) (7) (new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x4))) & x33=Succ(x31) & x32=Succ(x30) & Zero=x32 & (\/x34:new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x34))) & x33=x31 & x32=x30 & Zero=x32 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) (8) (new_primModNatS02(x37, x36)=Succ(Succ(Succ(x4))) & x37=Succ(x35) & x36=Zero & Zero=x36 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Zero)))))) (9) (Succ(Succ(x40))=Succ(Succ(Succ(x4))) & x40=Zero & x39=Succ(x38) & Zero=x39 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x40)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x11), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x10), Succ(Zero)))=x45 & new_primEqInt(x45)=False ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x45)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x10), Succ(Zero)))=Neg(Succ(x46)) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x10)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(x46) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(x46) which results in the following new constraints: (5) (Succ(Zero)=Succ(x46) & Succ(x10)=Succ(Zero) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) (6) (new_primModNatS01(x51, x50, x51, x50)=Succ(x46) & Succ(x10)=Succ(Succ(x51)) & Succ(Zero)=Succ(x50) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x51=x53 & x50=x54 & new_primModNatS01(x51, x50, x53, x54)=Succ(x46) & Zero=x50 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x51)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x51)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS02(x56, x55)=Succ(x46) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) (10) (new_primModNatS01(x60, x59, x58, x57)=Succ(x46) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(x61) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) (11) (new_primModNatS02(x64, x63)=Succ(x46) & x64=Succ(x62) & x63=Zero & Zero=x63 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x64)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x64)))))))) (12) (Succ(Succ(x67))=Succ(x46) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x67)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))) *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (703) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (704) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (705) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(new_primModNatS01(Succ(x5), Succ(x4), x5, x4)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))=x40 & new_primEqInt(x40)=False ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x40)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))=Pos(Succ(x41)) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (4) (False=False & Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))=Neg(Succ(x42)) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x2)=x43 & Succ(x3)=x44 & new_primModNatS01(x43, x44, x2, x3)=Succ(x41) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x43, x44, x2, x3)=Succ(x41) which results in the following new constraints: (6) (new_primModNatS02(x46, x45)=Succ(x41) & Succ(Zero)=x46 & Succ(Zero)=x45 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x50, x49, x48, x47)=Succ(x41) & Succ(Succ(x48))=x50 & Succ(Succ(x47))=x49 & (\/x51:new_primModNatS01(x50, x49, x48, x47)=Succ(x51) & Succ(x48)=x50 & Succ(x47)=x49 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x48))))), Integer(Neg(Succ(Succ(Succ(x47))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x48), Succ(x47), x48, x47))), Integer(Neg(Succ(Succ(Succ(x47))))), Integer(Pos(Succ(Succ(Succ(x48))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x48)))))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x48)), Succ(Succ(x47)), Succ(x48), Succ(x47)))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))), Integer(Pos(Succ(Succ(Succ(Succ(x48)))))))) (8) (new_primModNatS02(x54, x53)=Succ(x41) & Succ(Succ(x52))=x54 & Succ(Zero)=x53 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) (9) (Succ(Succ(x57))=Succ(x41) & Succ(Zero)=x57 & Succ(Succ(x55))=x56 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x46, x45)=Succ(x41) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x59), Succ(x58)), Succ(x58))=Succ(x41) & Succ(Zero)=x59 & Succ(Zero)=x58 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x50, x49, x48, x47)=Succ(x41) & Succ(Succ(x48))=x50 & Succ(Succ(x47))=x49 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x48)))))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x48)), Succ(Succ(x47)), Succ(x48), Succ(x47)))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))), Integer(Pos(Succ(Succ(Succ(Succ(x48)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x54, x53)=Succ(x41) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x78), Succ(x77)), Succ(x77))=Succ(x41) & Succ(Succ(x52))=x78 & Succ(Zero)=x77 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x48, x47)=Succ(x41) which results in the following new constraints: (15) (new_primModNatS02(x65, x64)=Succ(x41) & Succ(Succ(Zero))=x65 & Succ(Succ(Zero))=x64 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x69, x68, x67, x66)=Succ(x41) & Succ(Succ(Succ(x67)))=x69 & Succ(Succ(Succ(x66)))=x68 & (\/x70:new_primModNatS01(x69, x68, x67, x66)=Succ(x70) & Succ(Succ(x67))=x69 & Succ(Succ(x66))=x68 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x67)))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x67)), Succ(Succ(x66)), Succ(x67), Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))) ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) (17) (new_primModNatS02(x73, x72)=Succ(x41) & Succ(Succ(Succ(x71)))=x73 & Succ(Succ(Zero))=x72 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) (18) (Succ(Succ(x76))=Succ(x41) & Succ(Succ(Zero))=x76 & Succ(Succ(Succ(x74)))=x75 ==> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS01(Succ(x15), Succ(x14), x15, x14)))), new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x16), Succ(x17), x16, x17))), Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Succ(x16)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS01(Succ(x15), Succ(x14), x15, x14))))=new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS01(Succ(x15), Succ(x14), x15, x14))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x15)=x83 & Succ(x14)=x84 & new_primModNatS01(x83, x84, x15, x14)=Succ(Succ(Succ(x17))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS01(Succ(x15), Succ(x14), x15, x14))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x83, x84, x15, x14)=Succ(Succ(Succ(x17))) which results in the following new constraints: (3) (new_primModNatS02(x86, x85)=Succ(Succ(Succ(x17))) & Succ(Zero)=x86 & Succ(Zero)=x85 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) & Succ(Succ(x88))=x90 & Succ(Succ(x87))=x89 & (\/x91:new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x91))) & Succ(x88)=x90 & Succ(x87)=x89 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x87))))), Integer(Pos(Succ(Succ(Succ(x88))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x87))))), Integer(Pos(new_primModNatS01(Succ(x88), Succ(x87), x88, x87))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(Succ(Succ(Succ(Succ(x88)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x88)), Succ(Succ(x87)), Succ(x88), Succ(x87)))))) (5) (new_primModNatS02(x94, x93)=Succ(Succ(Succ(x17))) & Succ(Succ(x92))=x94 & Succ(Zero)=x93 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), Zero))))) (6) (Succ(Succ(x97))=Succ(Succ(Succ(x17))) & Succ(Zero)=x97 & Succ(Succ(x95))=x96 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x86, x85)=Succ(Succ(Succ(x17))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x99), Succ(x98)), Succ(x98))=Succ(Succ(Succ(x17))) & Succ(Zero)=x99 & Succ(Zero)=x98 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) & Succ(Succ(x88))=x90 & Succ(Succ(x87))=x89 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(Succ(Succ(Succ(Succ(x88)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x88)), Succ(Succ(x87)), Succ(x88), Succ(x87)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x94, x93)=Succ(Succ(Succ(x17))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x118), Succ(x117)), Succ(x117))=Succ(Succ(Succ(x17))) & Succ(Succ(x92))=x118 & Succ(Zero)=x117 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) which results in the following new constraints: (12) (new_primModNatS02(x105, x104)=Succ(Succ(Succ(x17))) & Succ(Succ(Zero))=x105 & Succ(Succ(Zero))=x104 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x109, x108, x107, x106)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x107)))=x109 & Succ(Succ(Succ(x106)))=x108 & (\/x110:new_primModNatS01(x109, x108, x107, x106)=Succ(Succ(Succ(x110))) & Succ(Succ(x107))=x109 & Succ(Succ(x106))=x108 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x106)))))), Integer(Pos(Succ(Succ(Succ(Succ(x107)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x106)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x107)), Succ(Succ(x106)), Succ(x107), Succ(x106)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) (14) (new_primModNatS02(x113, x112)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x111)))=x113 & Succ(Succ(Zero))=x112 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x111))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), Succ(Zero)))))) (15) (Succ(Succ(x116))=Succ(Succ(Succ(x17))) & Succ(Succ(Zero))=x116 & Succ(Succ(Succ(x114)))=x115 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x111))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), Succ(Zero)))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), Zero))))) For Pair new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(new_primModNatS01(Succ(x29), Succ(x28), x29, x28)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))=x123 & new_primEqInt(x123)=False ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x123)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))=Pos(Succ(x124)) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) (4) (False=False & Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))=Neg(Succ(x125)) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x26)=x126 & Succ(x27)=x127 & new_primModNatS01(x126, x127, x26, x27)=Succ(x125) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x126, x127, x26, x27)=Succ(x125) which results in the following new constraints: (6) (new_primModNatS02(x129, x128)=Succ(x125) & Succ(Zero)=x129 & Succ(Zero)=x128 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x133, x132, x131, x130)=Succ(x125) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 & (\/x134:new_primModNatS01(x133, x132, x131, x130)=Succ(x134) & Succ(x131)=x133 & Succ(x130)=x132 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x131))))), Integer(Pos(Succ(Succ(Succ(x130))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x131), Succ(x130), x131, x130))), Integer(Pos(Succ(Succ(Succ(x130))))), Integer(Neg(Succ(Succ(Succ(x131))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x131)))))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x131)), Succ(Succ(x130)), Succ(x131), Succ(x130)))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))), Integer(Neg(Succ(Succ(Succ(Succ(x131)))))))) (8) (new_primModNatS02(x137, x136)=Succ(x125) & Succ(Succ(x135))=x137 & Succ(Zero)=x136 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) (9) (Succ(Succ(x140))=Succ(x125) & Succ(Zero)=x140 & Succ(Succ(x138))=x139 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x129, x128)=Succ(x125) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x142), Succ(x141)), Succ(x141))=Succ(x125) & Succ(Zero)=x142 & Succ(Zero)=x141 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x133, x132, x131, x130)=Succ(x125) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x131)))))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x131)), Succ(Succ(x130)), Succ(x131), Succ(x130)))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))), Integer(Neg(Succ(Succ(Succ(Succ(x131)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x137, x136)=Succ(x125) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x161), Succ(x160)), Succ(x160))=Succ(x125) & Succ(Succ(x135))=x161 & Succ(Zero)=x160 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x133, x132, x131, x130)=Succ(x125) which results in the following new constraints: (15) (new_primModNatS02(x148, x147)=Succ(x125) & Succ(Succ(Zero))=x148 & Succ(Succ(Zero))=x147 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x152, x151, x150, x149)=Succ(x125) & Succ(Succ(Succ(x150)))=x152 & Succ(Succ(Succ(x149)))=x151 & (\/x153:new_primModNatS01(x152, x151, x150, x149)=Succ(x153) & Succ(Succ(x150))=x152 & Succ(Succ(x149))=x151 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x150)))))), Integer(Pos(Succ(Succ(Succ(Succ(x149)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x150)), Succ(Succ(x149)), Succ(x150), Succ(x149)))), Integer(Pos(Succ(Succ(Succ(Succ(x149)))))), Integer(Neg(Succ(Succ(Succ(Succ(x150)))))))) ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) (17) (new_primModNatS02(x156, x155)=Succ(x125) & Succ(Succ(Succ(x154)))=x156 & Succ(Succ(Zero))=x155 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) (18) (Succ(Succ(x159))=Succ(x125) & Succ(Succ(Zero))=x159 & Succ(Succ(Succ(x157)))=x158 ==> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS01(Succ(x31), Succ(x30), x31, x30)))), new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x32))))), Integer(Neg(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x32), Succ(x33), x32, x33))), Integer(Neg(Succ(Succ(Succ(x33))))), Integer(Pos(Succ(Succ(Succ(x32)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS01(Succ(x31), Succ(x30), x31, x30))))=new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x32))))), Integer(Neg(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS01(Succ(x31), Succ(x30), x31, x30))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x31)=x166 & Succ(x30)=x167 & new_primModNatS01(x166, x167, x31, x30)=Succ(Succ(Succ(x33))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS01(Succ(x31), Succ(x30), x31, x30))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x166, x167, x31, x30)=Succ(Succ(Succ(x33))) which results in the following new constraints: (3) (new_primModNatS02(x169, x168)=Succ(Succ(Succ(x33))) & Succ(Zero)=x169 & Succ(Zero)=x168 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) & Succ(Succ(x171))=x173 & Succ(Succ(x170))=x172 & (\/x174:new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x174))) & Succ(x171)=x173 & Succ(x170)=x172 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x170))))), Integer(Neg(Succ(Succ(Succ(x171))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x170))))), Integer(Neg(new_primModNatS01(Succ(x171), Succ(x170), x171, x170))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(Succ(Succ(Succ(Succ(x171)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x171)), Succ(Succ(x170)), Succ(x171), Succ(x170)))))) (5) (new_primModNatS02(x177, x176)=Succ(Succ(Succ(x33))) & Succ(Succ(x175))=x177 & Succ(Zero)=x176 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), Zero))))) (6) (Succ(Succ(x180))=Succ(Succ(Succ(x33))) & Succ(Zero)=x180 & Succ(Succ(x178))=x179 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x169, x168)=Succ(Succ(Succ(x33))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x182), Succ(x181)), Succ(x181))=Succ(Succ(Succ(x33))) & Succ(Zero)=x182 & Succ(Zero)=x181 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) & Succ(Succ(x171))=x173 & Succ(Succ(x170))=x172 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(Succ(Succ(Succ(Succ(x171)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x171)), Succ(Succ(x170)), Succ(x171), Succ(x170)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x177, x176)=Succ(Succ(Succ(x33))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x201), Succ(x200)), Succ(x200))=Succ(Succ(Succ(x33))) & Succ(Succ(x175))=x201 & Succ(Zero)=x200 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) which results in the following new constraints: (12) (new_primModNatS02(x188, x187)=Succ(Succ(Succ(x33))) & Succ(Succ(Zero))=x188 & Succ(Succ(Zero))=x187 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x192, x191, x190, x189)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x190)))=x192 & Succ(Succ(Succ(x189)))=x191 & (\/x193:new_primModNatS01(x192, x191, x190, x189)=Succ(Succ(Succ(x193))) & Succ(Succ(x190))=x192 & Succ(Succ(x189))=x191 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x189)))))), Integer(Neg(Succ(Succ(Succ(Succ(x190)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x189)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x190)), Succ(Succ(x189)), Succ(x190), Succ(x189)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) (14) (new_primModNatS02(x196, x195)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x194)))=x196 & Succ(Succ(Zero))=x195 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), Succ(Zero)))))) (15) (Succ(Succ(x199))=Succ(Succ(Succ(x33))) & Succ(Succ(Zero))=x199 & Succ(Succ(Succ(x197)))=x198 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), Succ(Zero)))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) *(new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x111))))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), Zero))))) *new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) *(new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), Zero))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (706) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'0(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primModNatS1(Zero, vyv65200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (707) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS0(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS0(vyv676, vyv677, Zero, Zero) -> new_primDivNatS00(vyv676, vyv677) new_primDivNatS(Succ(Succ(vyv633000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vyv633000), Zero) new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS0(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) new_primDivNatS00(vyv676, vyv677) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (708) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (709) Complex Obligation (AND) ---------------------------------------- (710) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vyv633000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vyv633000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) 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(vyv633000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vyv633000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> 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 ---------------------------------------- (712) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (714) YES ---------------------------------------- (715) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vyv676, vyv677, Zero, Zero) -> new_primDivNatS00(vyv676, vyv677) new_primDivNatS00(vyv676, vyv677) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) new_primDivNatS(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS0(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS0(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (716) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primDivNatS00(vyv676, vyv677) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primDivNatS(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS0(vyv633000, vyv646000, vyv633000, vyv646000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS0(vyv676, vyv677, vyv6780, vyv6790) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primDivNatS0(vyv676, vyv677, Zero, Zero) -> new_primDivNatS00(vyv676, vyv677) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 *new_primDivNatS0(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) ---------------------------------------- (717) YES ---------------------------------------- (718) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vyv58600), Succ(vyv58500)) -> new_primMulNat(vyv58600, Succ(vyv58500)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) 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(vyv58600), Succ(vyv58500)) -> new_primMulNat(vyv58600, Succ(vyv58500)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (720) YES ---------------------------------------- (721) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), new_fromInt0), h) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, new_fromInt, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, new_fromInt, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(new_primDivNatS1), bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (722) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), new_fromInt0), h) at position [2,1] we obtained the following new rules [LPAR04]: (new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h),new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h)) ---------------------------------------- (723) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, new_fromInt, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, new_fromInt, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(new_primDivNatS1), bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (724) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, new_fromInt, vyv597, ba) at position [2] we obtained the following new rules [LPAR04]: (new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba),new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba)) ---------------------------------------- (725) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, new_fromInt, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(new_primDivNatS1), bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (726) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, new_fromInt, vyv585, h) at position [2] we obtained the following new rules [LPAR04]: (new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h),new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h)) ---------------------------------------- (727) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(new_primDivNatS1), bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (728) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(new_primDivNatS1), bb) at position [2,0] we obtained the following new rules [LPAR04]: (new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb),new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb)) ---------------------------------------- (729) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (730) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (731) Complex Obligation (AND) ---------------------------------------- (732) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (733) 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. ---------------------------------------- (734) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) The TRS R consists of the following rules: new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (735) 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_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_ms(x0, Pos(Zero)) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_primDivNatS2(Zero) new_fromInt0 new_fromInt new_sr(x0, ty_Float) new_sr1(x0, app(ty_Ratio, x1)) new_sr13(Double(x0, x1), Double(x2, x3)) new_sr(x0, ty_Integer) new_sr3(x0, ty_Float) new_primMinusNat0(Zero, Zero) new_sr11(Float(x0, x1), Float(x2, x3)) new_sr0(x0, x1, ty_Int) new_sr1(x0, ty_Float) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_sr1(x0, ty_Integer) new_sr0(x0, x1, ty_Double) new_sr(x0, app(ty_Ratio, x1)) new_sr3(x0, ty_Int) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_esEs1(x0, x1, ty_Int) new_primDivNatS2(Succ(x0)) new_sr1(x0, ty_Int) new_primMinusNat0(Succ(x0), Succ(x1)) new_primDivNatS1 new_ms(x0, Pos(Succ(x1))) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_sr(x0, ty_Int) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_sr(x0, ty_Double) new_sr3(x0, app(ty_Ratio, x1)) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) ---------------------------------------- (736) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) The TRS R consists of the following rules: new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_gcd2(False, x0, x1) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_gcd0Gcd'00(x0, x1) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_gcd10(True, x0, x1) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (737) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (738) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) -> new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) The TRS R consists of the following rules: new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (739) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) evaluates to t =new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [vyv302 / new_sr2(vyv302, bb)] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_pr2F0G(vyv581, vyv302, Neg(Zero), bb) to new_pr2F0G(vyv581, new_sr2(vyv302, bb), Neg(Zero), bb). ---------------------------------------- (740) NO ---------------------------------------- (741) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) The TRS R consists of the following rules: new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_primPlusNat0(Zero, Zero) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_abs(Neg(Zero)) -> Neg(Zero) new_sr7(vyv302) -> new_primMulInt(vyv302) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primEqInt(Pos(Succ(vyv601000))) -> False new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primMinusNatS1 -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_sr2(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_sr2(vyv302, ty_Double) -> new_sr6(vyv302) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_primMulNat0(Zero, Zero) -> Zero new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_primDivNatS2(Zero) -> Zero new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr2(vyv302, ty_Integer) -> new_sr4(vyv302) new_primMulNat1(Zero) -> Zero new_primEqInt(Pos(Zero)) -> True new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_abs(Pos(Zero)) -> Pos(Zero) new_primMulNat2(Zero) -> Zero new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primMulNat3(Zero) -> Zero new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr2(vyv302, ty_Int) -> new_sr7(vyv302) new_primModNatS1(Zero, vyv65200) -> Zero new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS1 -> Zero new_sr2(vyv302, ty_Float) -> new_sr8(vyv302) new_primEqInt(Neg(Succ(vyv601000))) -> False new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_error(ca) -> error([]) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (742) 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. ---------------------------------------- (743) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_sr2(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr2(x0, ty_Integer) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS1 new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_sr2(x0, ty_Int) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (744) 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_sr2(x0, app(ty_Ratio, x1)) new_sr2(x0, ty_Double) new_sr2(x0, ty_Float) new_sr2(x0, ty_Integer) new_primDivNatS1 new_sr2(x0, ty_Int) ---------------------------------------- (745) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (746) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), new_primQuotInt(Succ(vyv587), Pos(Succ(Succ(Zero)))), h) at position [2] we obtained the following new rules [LPAR04]: (new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h),new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h)) ---------------------------------------- (747) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (748) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, new_fromInt, vyv581, bb) at position [2] we obtained the following new rules [LPAR04]: (new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb),new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb)) ---------------------------------------- (749) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_fromInt -> Pos(Succ(Zero)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (750) 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. ---------------------------------------- (751) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) The TRS R consists of the following rules: new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Zero, vyv64600) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_fromInt new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (752) 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_fromInt ---------------------------------------- (753) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) The TRS R consists of the following rules: new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Zero, vyv64600) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (754) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, new_fromInt0), bb) at position [2,1] we obtained the following new rules [LPAR04]: (new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb),new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb)) ---------------------------------------- (755) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb) The TRS R consists of the following rules: new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Zero, vyv64600) -> Zero new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_fromInt0 -> Pos(Succ(Succ(Zero))) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (756) 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. ---------------------------------------- (757) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_fromInt0 new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (758) 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 ---------------------------------------- (759) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (760) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), new_primQuotInt(Zero, Pos(Succ(Succ(Zero)))), bb) at position [2] we obtained the following new rules [LPAR04]: (new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(new_primDivNatS3(Zero, Succ(Zero))), bb),new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(new_primDivNatS3(Zero, Succ(Zero))), bb)) ---------------------------------------- (761) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(new_primDivNatS3(Zero, Succ(Zero))), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (762) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(new_primDivNatS3(Zero, Succ(Zero))), bb) at position [2,0] we obtained the following new rules [LPAR04]: (new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb),new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb)) ---------------------------------------- (763) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (764) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (765) Complex Obligation (AND) ---------------------------------------- (766) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (767) 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. ---------------------------------------- (768) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (769) 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_sr0(x0, x1, ty_Float) new_ms(x0, Pos(Zero)) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_primDivNatS2(Zero) new_sr(x0, ty_Float) new_sr13(Double(x0, x1), Double(x2, x3)) new_sr(x0, ty_Integer) new_sr3(x0, ty_Float) new_primMinusNat0(Zero, Zero) new_sr11(Float(x0, x1), Float(x2, x3)) new_sr0(x0, x1, ty_Int) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_sr0(x0, x1, ty_Double) new_sr(x0, app(ty_Ratio, x1)) new_sr3(x0, ty_Int) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_esEs1(x0, x1, ty_Int) new_primDivNatS2(Succ(x0)) new_primMinusNat0(Succ(x0), Succ(x1)) new_ms(x0, Pos(Succ(x1))) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_sr(x0, ty_Int) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_sr(x0, ty_Double) new_sr3(x0, app(ty_Ratio, x1)) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) ---------------------------------------- (770) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_gcd2(False, x0, x1) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_gcd0Gcd'00(x0, x1) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_gcd10(True, x0, x1) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (771) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (772) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) -> new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (773) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) evaluates to t =new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [vyv302 / new_sr1(vyv302, bb)] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_pr2F0G(vyv581, vyv302, Pos(Zero), bb) to new_pr2F0G(vyv581, new_sr1(vyv302, bb), Pos(Zero), bb). ---------------------------------------- (774) NO ---------------------------------------- (775) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr1(vyv302, app(ty_Ratio, bg)) -> new_sr5(vyv302, bg) new_sr1(vyv302, ty_Float) -> new_sr8(vyv302) new_sr1(vyv302, ty_Int) -> new_sr7(vyv302) new_sr1(vyv302, ty_Double) -> new_sr6(vyv302) new_sr1(vyv302, ty_Integer) -> new_sr4(vyv302) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (776) 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. ---------------------------------------- (777) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr1(x0, ty_Double) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_sr1(x0, app(ty_Ratio, x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_sr1(x0, ty_Float) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_sr1(x0, ty_Integer) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_sr1(x0, ty_Int) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (778) 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_sr1(x0, ty_Double) new_sr1(x0, app(ty_Ratio, x1)) new_sr1(x0, ty_Float) new_sr1(x0, ty_Integer) new_sr1(x0, ty_Int) ---------------------------------------- (779) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (780) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_pr2F1(vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F30(new_esEs(new_ms0(vyv599, vyv602)), vyv598, vyv599, vyv602, vyv597, ba) we obtained the following new rules [LPAR04]: (new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(new_ms0(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(new_ms0(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (781) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(new_ms0(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (782) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(new_ms0(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0,0] we obtained the following new rules [LPAR04]: (new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(new_primPlusNat0(Succ(z2), Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(new_primPlusNat0(Succ(z2), Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (783) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(new_primPlusNat0(Succ(z2), Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (784) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(new_primPlusNat0(Succ(z2), Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (785) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (786) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_esEs(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0] we obtained the following new rules [LPAR04]: (new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_primEqInt(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_primEqInt(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (787) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_primEqInt(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (788) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(new_primEqInt(Neg(Succ(Succ(new_primPlusNat0(z2, Zero))))), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0] we obtained the following new rules [LPAR04]: (new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (789) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (790) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_pr2F30(False, vyv598, vyv599, vyv602, vyv597, ba) -> new_pr2F0(vyv598, new_ms0(vyv599, vyv602), vyv597, ba) we obtained the following new rules [LPAR04]: (new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms0(z1, Pos(Succ(Zero))), z2, z3),new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms0(z1, Pos(Succ(Zero))), z2, z3)) ---------------------------------------- (791) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms0(z1, Pos(Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_ms0(vyv599, Neg(Zero)) -> Neg(Succ(vyv599)) new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_ms0(vyv599, Neg(Succ(vyv60200))) -> new_primMinusNat0(vyv60200, vyv599) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (792) 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. ---------------------------------------- (793) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms0(z1, Pos(Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (794) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms0(z1, Pos(Succ(Zero))), z2, z3) at position [1] we obtained the following new rules [LPAR04]: (new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3),new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3)) ---------------------------------------- (795) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_ms0(vyv599, Pos(vyv6020)) -> Neg(new_primPlusNat0(Succ(vyv599), vyv6020)) new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (796) 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. ---------------------------------------- (797) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_ms0(x0, Pos(x1)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (798) 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_ms0(x0, Pos(x1)) new_ms0(x0, Neg(Succ(x1))) new_ms0(x0, Neg(Zero)) ---------------------------------------- (799) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (800) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(new_primPlusNat0(Succ(z1), Succ(Zero))), z2, z3) at position [1,0] we obtained the following new rules [LPAR04]: (new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3),new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3)) ---------------------------------------- (801) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (802) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_pr2F(vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F3(new_esEs(new_ms(vyv587, vyv603)), vyv586, vyv587, vyv603, vyv585, h) we obtained the following new rules [LPAR04]: (new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_ms(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_ms(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3)) (new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_ms(Zero, Pos(Succ(Zero)))), z1, Zero, Pos(Succ(Zero)), z0, z2),new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_ms(Zero, Pos(Succ(Zero)))), z1, Zero, Pos(Succ(Zero)), z0, z2)) ---------------------------------------- (803) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_ms(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_ms(Zero, Pos(Succ(Zero)))), z1, Zero, Pos(Succ(Zero)), z0, z2) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (804) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_ms(z2, Pos(Succ(Zero)))), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0,0] we obtained the following new rules [LPAR04]: (new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3),new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3)) ---------------------------------------- (805) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_ms(Zero, Pos(Succ(Zero)))), z1, Zero, Pos(Succ(Zero)), z0, z2) new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (806) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_ms(Zero, Pos(Succ(Zero)))), z1, Zero, Pos(Succ(Zero)), z0, z2) at position [0,0] we obtained the following new rules [LPAR04]: (new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_primMinusNat0(Zero, Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2),new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_primMinusNat0(Zero, Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2)) ---------------------------------------- (807) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_primMinusNat0(Zero, Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (808) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(new_primMinusNat0(Zero, Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2) at position [0,0] we obtained the following new rules [LPAR04]: (new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(Pos(Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2),new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(Pos(Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2)) ---------------------------------------- (809) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F(z1, Zero, Pos(Succ(Zero)), z0, z2) -> new_pr2F3(new_esEs(Pos(Zero)), z1, Zero, Pos(Succ(Zero)), z0, z2) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (810) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (811) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (812) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_pr2F(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F3(new_esEs(new_primMinusNat0(z2, Zero)), z1, z2, Pos(Succ(Zero)), z0, z3) at position [0] we obtained the following new rules [LPAR04]: (new_pr2F(y0, Zero, Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Zero)), y0, Zero, Pos(Succ(Zero)), y2, y3),new_pr2F(y0, Zero, Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Zero)), y0, Zero, Pos(Succ(Zero)), y2, y3)) (new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3),new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3)) ---------------------------------------- (813) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Zero)), bb) -> new_pr2F(vyv302, Zero, Pos(Succ(Zero)), vyv581, bb) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Zero, Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Zero)), y0, Zero, Pos(Succ(Zero)), y2, y3) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (814) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (815) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (816) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_esEs(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3) at position [0] we obtained the following new rules [LPAR04]: (new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_primEqInt(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3),new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_primEqInt(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3)) ---------------------------------------- (817) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_primEqInt(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (818) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(new_primEqInt(Pos(Succ(x0))), y0, Succ(x0), Pos(Succ(Zero)), y2, y3) at position [0] we obtained the following new rules [LPAR04]: (new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3),new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3)) ---------------------------------------- (819) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (820) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_pr2F3(False, vyv586, vyv587, vyv603, vyv585, h) -> new_pr2F0(vyv586, new_ms(vyv587, vyv603), vyv585, h) we obtained the following new rules [LPAR04]: (new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms(Succ(z1), Pos(Succ(Zero))), z2, z3),new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms(Succ(z1), Pos(Succ(Zero))), z2, z3)) ---------------------------------------- (821) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms(Succ(z1), Pos(Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_ms(vyv587, Neg(vyv6030)) -> Pos(new_primPlusNat0(Succ(vyv587), vyv6030)) new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_ms(vyv587, Pos(Zero)) -> Pos(Succ(vyv587)) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (822) 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. ---------------------------------------- (823) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms(Succ(z1), Pos(Succ(Zero))), z2, z3) The TRS R consists of the following rules: new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (824) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_ms(Succ(z1), Pos(Succ(Zero))), z2, z3) at position [1] we obtained the following new rules [LPAR04]: (new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3),new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3)) ---------------------------------------- (825) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3) The TRS R consists of the following rules: new_ms(vyv587, Pos(Succ(vyv60300))) -> new_primMinusNat0(vyv587, vyv60300) new_primMinusNat0(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat0(vyv5870, vyv603000) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vyv603000)) -> Neg(Succ(vyv603000)) new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (826) 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. ---------------------------------------- (827) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3) The TRS R consists of the following rules: new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_ms(x0, Pos(Zero)) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_ms(x0, Pos(Succ(x1))) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_ms(x0, Neg(x1)) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (828) 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_ms(x0, Pos(Zero)) new_ms(x0, Pos(Succ(x1))) new_ms(x0, Neg(x1)) ---------------------------------------- (829) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3) The TRS R consists of the following rules: new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (830) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, new_primMinusNat0(Succ(z1), Zero), z2, z3) at position [1] we obtained the following new rules [LPAR04]: (new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3),new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3)) ---------------------------------------- (831) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3) The TRS R consists of the following rules: new_primMinusNat0(Succ(vyv5870), Zero) -> Pos(Succ(vyv5870)) new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (832) 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. ---------------------------------------- (833) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_primMinusNat0(Zero, Succ(x0)) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_primMinusNat0(Zero, Zero) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNat0(Succ(x0), Succ(x1)) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_primMinusNat0(Succ(x0), Zero) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (834) 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_primMinusNat0(Zero, Succ(x0)) new_primMinusNat0(Zero, Zero) new_primMinusNat0(Succ(x0), Succ(x1)) new_primMinusNat0(Succ(x0), Zero) ---------------------------------------- (835) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (836) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_pr2F3(False, z0, Succ(z1), Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Pos(Succ(z1)), z2, z3) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(:%(x_1, x_2)) = 0 POL(Double(x_1, x_2)) = 0 POL(False) = 0 POL(Float(x_1, x_2)) = 0 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = 0 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 0 POL(Zero) = 0 POL([]) = 1 POL(app(x_1, x_2)) = x_2 POL(error(x_1)) = 1 + x_1 POL(new_abs(x_1)) = 0 POL(new_abs0(x_1)) = 0 POL(new_error(x_1)) = 0 POL(new_esEs(x_1)) = 0 POL(new_esEs0(x_1)) = 0 POL(new_esEs1(x_1, x_2, x_3)) = x_2 POL(new_esEs2(x_1, x_2)) = 0 POL(new_gcd0(x_1, x_2)) = x_1 + x_2 POL(new_gcd00(x_1, x_2)) = 1 + x_1 + x_2 POL(new_gcd0Gcd'00(x_1, x_2)) = 0 POL(new_gcd0Gcd'11(x_1, x_2, x_3)) = x_2 + x_3 POL(new_gcd0Gcd'12(x_1, x_2, x_3)) = 0 POL(new_gcd0Gcd'13(x_1, x_2, x_3)) = x_2 + x_3 POL(new_gcd0Gcd'20(x_1, x_2)) = 0 POL(new_gcd1(x_1, x_2, x_3)) = x_2 + x_3 POL(new_gcd10(x_1, x_2, x_3)) = x_2 + x_3 POL(new_gcd2(x_1, x_2, x_3)) = x_2 + x_3 POL(new_gcd20(x_1, x_2, x_3)) = x_2 + x_3 POL(new_pr2F(x_1, x_2, x_3, x_4, x_5)) = 1 + x_2 + x_5 POL(new_pr2F0(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(new_pr2F0G(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(new_pr2F0G1(x_1, x_2, x_3, x_4, x_5)) = 1 + x_3 + x_5 POL(new_pr2F0G10(x_1, x_2, x_3, x_4, x_5)) = x_5 POL(new_pr2F0G11(x_1, x_2, x_3, x_4)) = x_4 POL(new_pr2F1(x_1, x_2, x_3, x_4, x_5)) = x_5 POL(new_pr2F3(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_1 + x_3 + x_6 POL(new_pr2F30(x_1, x_2, x_3, x_4, x_5, x_6)) = x_1 + x_6 POL(new_primDivNatS01(x_1, x_2)) = 1 + x_1 POL(new_primDivNatS02(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS2(x_1)) = x_1 POL(new_primDivNatS3(x_1, x_2)) = x_1 POL(new_primEqInt(x_1)) = 0 POL(new_primMinusNatS0(x_1)) = x_1 POL(new_primMinusNatS1) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 POL(new_primModNatS02(x_1, x_2)) = 1 + x_1 + x_2 POL(new_primModNatS1(x_1, x_2)) = 0 POL(new_primMulInt(x_1)) = 0 POL(new_primMulInt0(x_1, x_2)) = 0 POL(new_primMulNat0(x_1, x_2)) = 0 POL(new_primMulNat1(x_1)) = 0 POL(new_primMulNat2(x_1)) = 0 POL(new_primMulNat3(x_1)) = 0 POL(new_primNegInt(x_1)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = 0 POL(new_primQuotInt(x_1, x_2)) = x_1 POL(new_primQuotInt0(x_1, x_2, x_3, x_4)) = x_1 + x_3 + x_4 POL(new_primQuotInt1(x_1, x_2)) = 0 POL(new_primQuotInt2(x_1, x_2, x_3, x_4)) = x_1 + x_3 + x_4 POL(new_primRemInt(x_1, x_2)) = 0 POL(new_quot(x_1, x_2, x_3, x_4, x_5)) = x_1 + x_2 POL(new_quot0(x_1, x_2, x_3, x_4, x_5)) = x_1 + x_2 POL(new_quot1(x_1, x_2, x_3)) = 0 POL(new_quot2(x_1, x_2, x_3)) = 0 POL(new_quot3(x_1, x_2)) = 1 + x_1 POL(new_reduce2Reduce1(x_1, x_2, x_3, x_4, x_5, x_6)) = x_6 POL(new_rem(x_1, x_2)) = 0 POL(new_sr(x_1, x_2)) = x_1 POL(new_sr0(x_1, x_2, x_3)) = x_1 + x_2 POL(new_sr10(x_1, x_2)) = x_1 + x_2 POL(new_sr11(x_1, x_2)) = 1 + x_2 POL(new_sr12(x_1, x_2, x_3)) = 1 + x_3 POL(new_sr13(x_1, x_2)) = 1 + x_2 POL(new_sr3(x_1, x_2)) = x_1 POL(new_sr4(x_1)) = x_1 POL(new_sr5(x_1, x_2)) = 1 + x_1 + x_2 POL(new_sr6(x_1)) = 1 + x_1 POL(new_sr7(x_1)) = x_1 POL(new_sr8(x_1)) = 1 + x_1 POL(new_sr9(x_1, x_2)) = 0 POL(ty_Double) = 1 POL(ty_Float) = 1 POL(ty_Int) = 0 POL(ty_Integer) = 0 POL(ty_Ratio) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) ---------------------------------------- (837) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Zero), h) -> new_pr2F(vyv586, vyv587, Pos(Succ(Zero)), vyv585, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F(y0, Succ(x0), Pos(Succ(Zero)), y2, y3) -> new_pr2F3(False, y0, Succ(x0), Pos(Succ(Zero)), y2, y3) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (838) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (839) Complex Obligation (AND) ---------------------------------------- (840) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (841) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (842) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (843) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) the following chains were created: *We consider the chain new_pr2F0G1(x0, x1, x2, Succ(Succ(x3)), x4) -> new_pr2F0G1(x0, x1, x2, x3, x4), new_pr2F0G1(x5, x6, x7, Succ(Succ(x8)), x9) -> new_pr2F0G1(x5, x6, x7, x8, x9) which results in the following constraint: (1) (new_pr2F0G1(x0, x1, x2, x3, x4)=new_pr2F0G1(x5, x6, x7, Succ(Succ(x8)), x9) ==> new_pr2F0G1(x0, x1, x2, Succ(Succ(x3)), x4)_>=_new_pr2F0G1(x0, x1, x2, x3, x4)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G1(x0, x1, x2, Succ(Succ(Succ(Succ(x8)))), x4)_>=_new_pr2F0G1(x0, x1, x2, Succ(Succ(x8)), x4)) *We consider the chain new_pr2F0G1(x10, x11, x12, Succ(Succ(x13)), x14) -> new_pr2F0G1(x10, x11, x12, x13, x14), new_pr2F0G1(x15, x16, x17, Zero, x18) -> new_pr2F0G(x15, new_sr(x16, x18), Pos(new_primDivNatS3(Succ(x17), Succ(Zero))), x18) which results in the following constraint: (1) (new_pr2F0G1(x10, x11, x12, x13, x14)=new_pr2F0G1(x15, x16, x17, Zero, x18) ==> new_pr2F0G1(x10, x11, x12, Succ(Succ(x13)), x14)_>=_new_pr2F0G1(x10, x11, x12, x13, x14)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G1(x10, x11, x12, Succ(Succ(Zero)), x14)_>=_new_pr2F0G1(x10, x11, x12, Zero, x14)) For Pair new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) the following chains were created: *We consider the chain new_pr2F0G1(x32, x33, x34, Zero, x35) -> new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35), new_pr2F0G(x36, x37, Pos(Succ(Succ(x38))), x39) -> new_pr2F0G1(x36, x37, Succ(x38), x38, x39) which results in the following constraint: (1) (new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)=new_pr2F0G(x36, x37, Pos(Succ(Succ(x38))), x39) ==> new_pr2F0G1(x32, x33, x34, Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x34)=x61 & Succ(Zero)=x62 & new_primDivNatS3(x61, x62)=Succ(Succ(x38)) ==> new_pr2F0G1(x32, x33, x34, Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS3(x61, x62)=Succ(Succ(x38)) which results in the following new constraints: (3) (new_primDivNatS02(x65, x64, x65, x64)=Succ(Succ(x38)) & Succ(x34)=Succ(Succ(x65)) & Succ(Zero)=Succ(x64) ==> new_pr2F0G1(x32, x33, x34, Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)) (4) (Succ(new_primDivNatS3(new_primMinusNatS0(x67), Zero))=Succ(Succ(x38)) & Succ(x34)=Succ(Succ(x67)) & Succ(Zero)=Zero ==> new_pr2F0G1(x32, x33, x34, Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)) (5) (Succ(new_primDivNatS3(new_primMinusNatS1, Zero))=Succ(Succ(x38)) & Succ(x34)=Succ(Zero) & Succ(Zero)=Zero ==> new_pr2F0G1(x32, x33, x34, Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(x34), Succ(Zero))), x35)) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (6) (x65=x68 & x64=x69 & new_primDivNatS02(x65, x64, x68, x69)=Succ(Succ(x38)) & Zero=x64 ==> new_pr2F0G1(x32, x33, Succ(x65), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(x65)), Succ(Zero))), x35)) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x65, x64, x68, x69)=Succ(Succ(x38)) which results in the following new constraints: (7) (new_primDivNatS01(x71, x70)=Succ(Succ(x38)) & x71=Zero & x70=Zero & Zero=x70 ==> new_pr2F0G1(x32, x33, Succ(x71), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(x71)), Succ(Zero))), x35)) (8) (new_primDivNatS01(x74, x73)=Succ(Succ(x38)) & x74=Succ(x72) & x73=Zero & Zero=x73 ==> new_pr2F0G1(x32, x33, Succ(x74), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(x74)), Succ(Zero))), x35)) (9) (new_primDivNatS02(x81, x80, x79, x78)=Succ(Succ(x38)) & x81=Succ(x79) & x80=Succ(x78) & Zero=x80 & (\/x82,x83,x84,x85:new_primDivNatS02(x81, x80, x79, x78)=Succ(Succ(x82)) & x81=x79 & x80=x78 & Zero=x80 ==> new_pr2F0G1(x83, x84, Succ(x81), Zero, x85)_>=_new_pr2F0G(x83, new_sr(x84, x85), Pos(new_primDivNatS3(Succ(Succ(x81)), Succ(Zero))), x85)) ==> new_pr2F0G1(x32, x33, Succ(x81), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(x81)), Succ(Zero))), x35)) We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_pr2F0G1(x32, x33, Succ(Zero), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x35)) We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_pr2F0G1(x32, x33, Succ(Succ(x72)), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(Succ(x72))), Succ(Zero))), x35)) We solved constraint (9) using rules (I), (II), (III). For Pair new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) the following chains were created: *We consider the chain new_pr2F0G(x40, x41, Pos(Succ(Succ(x42))), x43) -> new_pr2F0G1(x40, x41, Succ(x42), x42, x43), new_pr2F0G1(x44, x45, x46, Succ(Succ(x47)), x48) -> new_pr2F0G1(x44, x45, x46, x47, x48) which results in the following constraint: (1) (new_pr2F0G1(x40, x41, Succ(x42), x42, x43)=new_pr2F0G1(x44, x45, x46, Succ(Succ(x47)), x48) ==> new_pr2F0G(x40, x41, Pos(Succ(Succ(x42))), x43)_>=_new_pr2F0G1(x40, x41, Succ(x42), x42, x43)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x40, x41, Pos(Succ(Succ(Succ(Succ(x47))))), x43)_>=_new_pr2F0G1(x40, x41, Succ(Succ(Succ(x47))), Succ(Succ(x47)), x43)) *We consider the chain new_pr2F0G(x49, x50, Pos(Succ(Succ(x51))), x52) -> new_pr2F0G1(x49, x50, Succ(x51), x51, x52), new_pr2F0G1(x53, x54, x55, Zero, x56) -> new_pr2F0G(x53, new_sr(x54, x56), Pos(new_primDivNatS3(Succ(x55), Succ(Zero))), x56) which results in the following constraint: (1) (new_pr2F0G1(x49, x50, Succ(x51), x51, x52)=new_pr2F0G1(x53, x54, x55, Zero, x56) ==> new_pr2F0G(x49, x50, Pos(Succ(Succ(x51))), x52)_>=_new_pr2F0G1(x49, x50, Succ(x51), x51, x52)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x49, x50, Pos(Succ(Succ(Zero))), x52)_>=_new_pr2F0G1(x49, x50, Succ(Zero), Zero, x52)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) *(new_pr2F0G1(x0, x1, x2, Succ(Succ(Succ(Succ(x8)))), x4)_>=_new_pr2F0G1(x0, x1, x2, Succ(Succ(x8)), x4)) *(new_pr2F0G1(x10, x11, x12, Succ(Succ(Zero)), x14)_>=_new_pr2F0G1(x10, x11, x12, Zero, x14)) *new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) *(new_pr2F0G1(x32, x33, Succ(Zero), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x35)) *(new_pr2F0G1(x32, x33, Succ(Succ(x72)), Zero, x35)_>=_new_pr2F0G(x32, new_sr(x33, x35), Pos(new_primDivNatS3(Succ(Succ(Succ(x72))), Succ(Zero))), x35)) *new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) *(new_pr2F0G(x40, x41, Pos(Succ(Succ(Succ(Succ(x47))))), x43)_>=_new_pr2F0G1(x40, x41, Succ(Succ(Succ(x47))), Succ(Succ(x47)), x43)) *(new_pr2F0G(x49, x50, Pos(Succ(Succ(Zero))), x52)_>=_new_pr2F0G1(x49, x50, Succ(Zero), Zero, x52)) 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. ---------------------------------------- (844) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (845) QDPPairToRuleProof (EQUIVALENT) The dependency pair new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) was transformed to the following new rules: anew_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Zero) -> cons_new_pr2F0G1(Zero) the following new pairs maintain the fan-in: new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) the following new pairs maintain the fan-out: H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) ---------------------------------------- (846) Complex Obligation (AND) ---------------------------------------- (847) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Zero) -> cons_new_pr2F0G1(Zero) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) new_new_pr2F0G1(Succ(Succ(x0))) anew_new_pr2F0G1(Succ(Succ(x0))) new_new_pr2F0G1(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (848) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (849) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Zero) -> cons_new_pr2F0G1(Zero) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (850) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) the following chains were created: *We consider the chain new_pr2F0G1(x4, x5, x6, Zero, x7) -> new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7), new_pr2F0G(x8, x9, Pos(Succ(Succ(x10))), x11) -> new_pr2F0G1(x8, x9, Succ(x10), x10, x11) which results in the following constraint: (1) (new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)=new_pr2F0G(x8, x9, Pos(Succ(Succ(x10))), x11) ==> new_pr2F0G1(x4, x5, x6, Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x6)=x84 & Succ(Zero)=x85 & new_primDivNatS3(x84, x85)=Succ(Succ(x10)) ==> new_pr2F0G1(x4, x5, x6, Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS3(x84, x85)=Succ(Succ(x10)) which results in the following new constraints: (3) (new_primDivNatS02(x88, x87, x88, x87)=Succ(Succ(x10)) & Succ(x6)=Succ(Succ(x88)) & Succ(Zero)=Succ(x87) ==> new_pr2F0G1(x4, x5, x6, Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)) (4) (Succ(new_primDivNatS3(new_primMinusNatS0(x90), Zero))=Succ(Succ(x10)) & Succ(x6)=Succ(Succ(x90)) & Succ(Zero)=Zero ==> new_pr2F0G1(x4, x5, x6, Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)) (5) (Succ(new_primDivNatS3(new_primMinusNatS1, Zero))=Succ(Succ(x10)) & Succ(x6)=Succ(Zero) & Succ(Zero)=Zero ==> new_pr2F0G1(x4, x5, x6, Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(x6), Succ(Zero))), x7)) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (6) (x88=x91 & x87=x92 & new_primDivNatS02(x88, x87, x91, x92)=Succ(Succ(x10)) & Zero=x87 ==> new_pr2F0G1(x4, x5, Succ(x88), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(x88)), Succ(Zero))), x7)) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x88, x87, x91, x92)=Succ(Succ(x10)) which results in the following new constraints: (7) (new_primDivNatS01(x94, x93)=Succ(Succ(x10)) & x94=Zero & x93=Zero & Zero=x93 ==> new_pr2F0G1(x4, x5, Succ(x94), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(x94)), Succ(Zero))), x7)) (8) (new_primDivNatS01(x97, x96)=Succ(Succ(x10)) & x97=Succ(x95) & x96=Zero & Zero=x96 ==> new_pr2F0G1(x4, x5, Succ(x97), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(x97)), Succ(Zero))), x7)) (9) (new_primDivNatS02(x104, x103, x102, x101)=Succ(Succ(x10)) & x104=Succ(x102) & x103=Succ(x101) & Zero=x103 & (\/x105,x106,x107,x108:new_primDivNatS02(x104, x103, x102, x101)=Succ(Succ(x105)) & x104=x102 & x103=x101 & Zero=x103 ==> new_pr2F0G1(x106, x107, Succ(x104), Zero, x108)_>=_new_pr2F0G(x106, new_sr(x107, x108), Pos(new_primDivNatS3(Succ(Succ(x104)), Succ(Zero))), x108)) ==> new_pr2F0G1(x4, x5, Succ(x104), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(x104)), Succ(Zero))), x7)) We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_pr2F0G1(x4, x5, Succ(Zero), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x7)) We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_pr2F0G1(x4, x5, Succ(Succ(x95)), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(Succ(x95))), Succ(Zero))), x7)) We solved constraint (9) using rules (I), (II), (III). *We consider the chain new_pr2F0G1(x12, x13, x14, Zero, x15) -> new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15), new_pr2F0G(x16, x17, Pos(Succ(Succ(x18))), x19) -> H(x16, x17, Succ(x18), x19, anew_new_pr2F0G1(x18)) which results in the following constraint: (1) (new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)=new_pr2F0G(x16, x17, Pos(Succ(Succ(x18))), x19) ==> new_pr2F0G1(x12, x13, x14, Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x14)=x113 & Succ(Zero)=x114 & new_primDivNatS3(x113, x114)=Succ(Succ(x18)) ==> new_pr2F0G1(x12, x13, x14, Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS3(x113, x114)=Succ(Succ(x18)) which results in the following new constraints: (3) (new_primDivNatS02(x117, x116, x117, x116)=Succ(Succ(x18)) & Succ(x14)=Succ(Succ(x117)) & Succ(Zero)=Succ(x116) ==> new_pr2F0G1(x12, x13, x14, Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)) (4) (Succ(new_primDivNatS3(new_primMinusNatS0(x119), Zero))=Succ(Succ(x18)) & Succ(x14)=Succ(Succ(x119)) & Succ(Zero)=Zero ==> new_pr2F0G1(x12, x13, x14, Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)) (5) (Succ(new_primDivNatS3(new_primMinusNatS1, Zero))=Succ(Succ(x18)) & Succ(x14)=Succ(Zero) & Succ(Zero)=Zero ==> new_pr2F0G1(x12, x13, x14, Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(x14), Succ(Zero))), x15)) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (6) (x117=x120 & x116=x121 & new_primDivNatS02(x117, x116, x120, x121)=Succ(Succ(x18)) & Zero=x116 ==> new_pr2F0G1(x12, x13, Succ(x117), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(x117)), Succ(Zero))), x15)) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x117, x116, x120, x121)=Succ(Succ(x18)) which results in the following new constraints: (7) (new_primDivNatS01(x123, x122)=Succ(Succ(x18)) & x123=Zero & x122=Zero & Zero=x122 ==> new_pr2F0G1(x12, x13, Succ(x123), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(x123)), Succ(Zero))), x15)) (8) (new_primDivNatS01(x126, x125)=Succ(Succ(x18)) & x126=Succ(x124) & x125=Zero & Zero=x125 ==> new_pr2F0G1(x12, x13, Succ(x126), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(x126)), Succ(Zero))), x15)) (9) (new_primDivNatS02(x133, x132, x131, x130)=Succ(Succ(x18)) & x133=Succ(x131) & x132=Succ(x130) & Zero=x132 & (\/x134,x135,x136,x137:new_primDivNatS02(x133, x132, x131, x130)=Succ(Succ(x134)) & x133=x131 & x132=x130 & Zero=x132 ==> new_pr2F0G1(x135, x136, Succ(x133), Zero, x137)_>=_new_pr2F0G(x135, new_sr(x136, x137), Pos(new_primDivNatS3(Succ(Succ(x133)), Succ(Zero))), x137)) ==> new_pr2F0G1(x12, x13, Succ(x133), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(x133)), Succ(Zero))), x15)) We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_pr2F0G1(x12, x13, Succ(Zero), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x15)) We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_pr2F0G1(x12, x13, Succ(Succ(x124)), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(Succ(x124))), Succ(Zero))), x15)) We solved constraint (9) using rules (I), (II), (III). For Pair new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) the following chains were created: *We consider the chain new_pr2F0G(x24, x25, Pos(Succ(Succ(x26))), x27) -> new_pr2F0G1(x24, x25, Succ(x26), x26, x27), new_pr2F0G1(x28, x29, x30, Zero, x31) -> new_pr2F0G(x28, new_sr(x29, x31), Pos(new_primDivNatS3(Succ(x30), Succ(Zero))), x31) which results in the following constraint: (1) (new_pr2F0G1(x24, x25, Succ(x26), x26, x27)=new_pr2F0G1(x28, x29, x30, Zero, x31) ==> new_pr2F0G(x24, x25, Pos(Succ(Succ(x26))), x27)_>=_new_pr2F0G1(x24, x25, Succ(x26), x26, x27)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x24, x25, Pos(Succ(Succ(Zero))), x27)_>=_new_pr2F0G1(x24, x25, Succ(Zero), Zero, x27)) For Pair new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) the following chains were created: *We consider the chain new_pr2F0G(x56, x57, Pos(Succ(Succ(x58))), x59) -> H(x56, x57, Succ(x58), x59, anew_new_pr2F0G1(x58)), H(x60, x61, x62, x63, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(x60, x61, x62, Zero, x63) which results in the following constraint: (1) (H(x56, x57, Succ(x58), x59, anew_new_pr2F0G1(x58))=H(x60, x61, x62, x63, cons_new_pr2F0G1(Zero)) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(x58))), x59)_>=_H(x56, x57, Succ(x58), x59, anew_new_pr2F0G1(x58))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_pr2F0G1(x58)=cons_new_pr2F0G1(Zero) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(x58))), x59)_>=_H(x56, x57, Succ(x58), x59, anew_new_pr2F0G1(x58))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_pr2F0G1(x58)=cons_new_pr2F0G1(Zero) which results in the following new constraint: (3) (new_new_pr2F0G1(x142)=cons_new_pr2F0G1(Zero) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(x142))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(x142))), x59, anew_new_pr2F0G1(Succ(Succ(x142))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_pr2F0G1(x142)=cons_new_pr2F0G1(Zero) which results in the following new constraints: (4) (new_new_pr2F0G1(x143)=cons_new_pr2F0G1(Zero) & (\/x144,x145,x146:new_new_pr2F0G1(x143)=cons_new_pr2F0G1(Zero) ==> new_pr2F0G(x144, x145, Pos(Succ(Succ(Succ(Succ(x143))))), x146)_>=_H(x144, x145, Succ(Succ(Succ(x143))), x146, anew_new_pr2F0G1(Succ(Succ(x143))))) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x143))))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Succ(Succ(x143))))), x59, anew_new_pr2F0G1(Succ(Succ(Succ(Succ(x143))))))) (5) (cons_new_pr2F0G1(Zero)=cons_new_pr2F0G1(Zero) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Zero))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Zero))), x59, anew_new_pr2F0G1(Succ(Succ(Zero))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x144,x145,x146:new_new_pr2F0G1(x143)=cons_new_pr2F0G1(Zero) ==> new_pr2F0G(x144, x145, Pos(Succ(Succ(Succ(Succ(x143))))), x146)_>=_H(x144, x145, Succ(Succ(Succ(x143))), x146, anew_new_pr2F0G1(Succ(Succ(x143))))) with sigma = [x144 / x56, x145 / x57, x146 / x59] which results in the following new constraint: (6) (new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(x143))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(x143))), x59, anew_new_pr2F0G1(Succ(Succ(x143)))) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x143))))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Succ(Succ(x143))))), x59, anew_new_pr2F0G1(Succ(Succ(Succ(Succ(x143))))))) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (7) (new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Zero))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Zero))), x59, anew_new_pr2F0G1(Succ(Succ(Zero))))) For Pair H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) the following chains were created: *We consider the chain H(x64, x65, x66, x67, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(x64, x65, x66, Zero, x67), new_pr2F0G1(x68, x69, x70, Zero, x71) -> new_pr2F0G(x68, new_sr(x69, x71), Pos(new_primDivNatS3(Succ(x70), Succ(Zero))), x71) which results in the following constraint: (1) (new_pr2F0G1(x64, x65, x66, Zero, x67)=new_pr2F0G1(x68, x69, x70, Zero, x71) ==> H(x64, x65, x66, x67, cons_new_pr2F0G1(Zero))_>=_new_pr2F0G1(x64, x65, x66, Zero, x67)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x64, x65, x66, x67, cons_new_pr2F0G1(Zero))_>=_new_pr2F0G1(x64, x65, x66, Zero, x67)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) *(new_pr2F0G1(x4, x5, Succ(Zero), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x7)) *(new_pr2F0G1(x4, x5, Succ(Succ(x95)), Zero, x7)_>=_new_pr2F0G(x4, new_sr(x5, x7), Pos(new_primDivNatS3(Succ(Succ(Succ(x95))), Succ(Zero))), x7)) *(new_pr2F0G1(x12, x13, Succ(Zero), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(Zero)), Succ(Zero))), x15)) *(new_pr2F0G1(x12, x13, Succ(Succ(x124)), Zero, x15)_>=_new_pr2F0G(x12, new_sr(x13, x15), Pos(new_primDivNatS3(Succ(Succ(Succ(x124))), Succ(Zero))), x15)) *new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) *(new_pr2F0G(x24, x25, Pos(Succ(Succ(Zero))), x27)_>=_new_pr2F0G1(x24, x25, Succ(Zero), Zero, x27)) *new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) *(new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(x143))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(x143))), x59, anew_new_pr2F0G1(Succ(Succ(x143)))) ==> new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x143))))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Succ(Succ(x143))))), x59, anew_new_pr2F0G1(Succ(Succ(Succ(Succ(x143))))))) *(new_pr2F0G(x56, x57, Pos(Succ(Succ(Succ(Succ(Zero))))), x59)_>=_H(x56, x57, Succ(Succ(Succ(Zero))), x59, anew_new_pr2F0G1(Succ(Succ(Zero))))) *H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) *(H(x64, x65, x66, x67, cons_new_pr2F0G1(Zero))_>=_new_pr2F0G1(x64, x65, x66, Zero, x67)) 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. ---------------------------------------- (851) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) -> new_pr2F0G(vyv585, new_sr(vyv586, h), Pos(new_primDivNatS3(Succ(vyv587), Succ(Zero))), h) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> new_pr2F0G1(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G(vyv581, vyv302, Pos(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G1(vyv564000)) H(vyv585, vyv586, vyv587, h, cons_new_pr2F0G1(Zero)) -> new_pr2F0G1(vyv585, vyv586, vyv587, Zero, h) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Succ(Succ(vyv58800))) -> new_new_pr2F0G1(vyv58800) new_new_pr2F0G1(Zero) -> cons_new_pr2F0G1(Zero) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) new_new_pr2F0G1(Succ(Succ(x0))) anew_new_pr2F0G1(Succ(Succ(x0))) new_new_pr2F0G1(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (852) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (853) 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_pr2F0G1(vyv585, vyv586, vyv587, Succ(Succ(vyv58800)), h) -> new_pr2F0G1(vyv585, vyv586, vyv587, vyv58800, h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 >= 5 ---------------------------------------- (854) YES ---------------------------------------- (855) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (856) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (857) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (858) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) the following chains were created: *We consider the chain new_pr2F0(x4, x5, x6, x7) -> new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7), new_pr2F0G(x8, x9, Neg(Succ(Zero)), x10) -> new_pr2F0G11(x8, x9, Zero, x10) which results in the following constraint: (1) (new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7)=new_pr2F0G(x8, x9, Neg(Succ(Zero)), x10) ==> new_pr2F0(x4, x5, x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0(x4, Neg(Succ(Zero)), x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, Neg(Succ(Zero)), x7)) *We consider the chain new_pr2F0(x23, x24, x25, x26) -> new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26), new_pr2F0G(x27, x28, Neg(Succ(Succ(x29))), x30) -> new_pr2F0G10(x27, x28, Succ(x29), x29, x30) which results in the following constraint: (1) (new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26)=new_pr2F0G(x27, x28, Neg(Succ(Succ(x29))), x30) ==> new_pr2F0(x23, x24, x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0(x23, Neg(Succ(Succ(x29))), x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, Neg(Succ(Succ(x29))), x26)) For Pair new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) the following chains were created: *We consider the chain new_pr2F0G(x49, x50, Neg(Succ(Zero)), x51) -> new_pr2F0G11(x49, x50, Zero, x51), new_pr2F0G11(x52, x53, x54, x55) -> new_pr2F1(x53, x54, Pos(Succ(Zero)), x52, x55) which results in the following constraint: (1) (new_pr2F0G11(x49, x50, Zero, x51)=new_pr2F0G11(x52, x53, x54, x55) ==> new_pr2F0G(x49, x50, Neg(Succ(Zero)), x51)_>=_new_pr2F0G11(x49, x50, Zero, x51)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G(x49, x50, Neg(Succ(Zero)), x51)_>=_new_pr2F0G11(x49, x50, Zero, x51)) For Pair new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) the following chains were created: *We consider the chain new_pr2F0G11(x86, x87, x88, x89) -> new_pr2F1(x87, x88, Pos(Succ(Zero)), x86, x89), new_pr2F1(x90, x91, Pos(Succ(Zero)), x92, x93) -> new_pr2F30(False, x90, x91, Pos(Succ(Zero)), x92, x93) which results in the following constraint: (1) (new_pr2F1(x87, x88, Pos(Succ(Zero)), x86, x89)=new_pr2F1(x90, x91, Pos(Succ(Zero)), x92, x93) ==> new_pr2F0G11(x86, x87, x88, x89)_>=_new_pr2F1(x87, x88, Pos(Succ(Zero)), x86, x89)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G11(x86, x87, x88, x89)_>=_new_pr2F1(x87, x88, Pos(Succ(Zero)), x86, x89)) For Pair new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) the following chains were created: *We consider the chain new_pr2F1(x130, x131, Pos(Succ(Zero)), x132, x133) -> new_pr2F30(False, x130, x131, Pos(Succ(Zero)), x132, x133), new_pr2F30(False, x134, x135, Pos(Succ(Zero)), x136, x137) -> new_pr2F0(x134, Neg(Succ(Succ(new_primPlusNat0(x135, Zero)))), x136, x137) which results in the following constraint: (1) (new_pr2F30(False, x130, x131, Pos(Succ(Zero)), x132, x133)=new_pr2F30(False, x134, x135, Pos(Succ(Zero)), x136, x137) ==> new_pr2F1(x130, x131, Pos(Succ(Zero)), x132, x133)_>=_new_pr2F30(False, x130, x131, Pos(Succ(Zero)), x132, x133)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F1(x130, x131, Pos(Succ(Zero)), x132, x133)_>=_new_pr2F30(False, x130, x131, Pos(Succ(Zero)), x132, x133)) For Pair new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) the following chains were created: *We consider the chain new_pr2F30(False, x154, x155, Pos(Succ(Zero)), x156, x157) -> new_pr2F0(x154, Neg(Succ(Succ(new_primPlusNat0(x155, Zero)))), x156, x157), new_pr2F0(x158, x159, x160, x161) -> new_pr2F0G(new_sr0(x158, x160, x161), x158, x159, x161) which results in the following constraint: (1) (new_pr2F0(x154, Neg(Succ(Succ(new_primPlusNat0(x155, Zero)))), x156, x157)=new_pr2F0(x158, x159, x160, x161) ==> new_pr2F30(False, x154, x155, Pos(Succ(Zero)), x156, x157)_>=_new_pr2F0(x154, Neg(Succ(Succ(new_primPlusNat0(x155, Zero)))), x156, x157)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F30(False, x154, x155, Pos(Succ(Zero)), x156, x157)_>=_new_pr2F0(x154, Neg(Succ(Succ(new_primPlusNat0(x155, Zero)))), x156, x157)) For Pair new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) the following chains were created: *We consider the chain new_pr2F0G(x218, x219, Neg(Succ(Succ(x220))), x221) -> new_pr2F0G10(x218, x219, Succ(x220), x220, x221), new_pr2F0G10(x222, x223, x224, Succ(Succ(x225)), x226) -> new_pr2F0G10(x222, x223, x224, x225, x226) which results in the following constraint: (1) (new_pr2F0G10(x218, x219, Succ(x220), x220, x221)=new_pr2F0G10(x222, x223, x224, Succ(Succ(x225)), x226) ==> new_pr2F0G(x218, x219, Neg(Succ(Succ(x220))), x221)_>=_new_pr2F0G10(x218, x219, Succ(x220), x220, x221)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x218, x219, Neg(Succ(Succ(Succ(Succ(x225))))), x221)_>=_new_pr2F0G10(x218, x219, Succ(Succ(Succ(x225))), Succ(Succ(x225)), x221)) *We consider the chain new_pr2F0G(x227, x228, Neg(Succ(Succ(x229))), x230) -> new_pr2F0G10(x227, x228, Succ(x229), x229, x230), new_pr2F0G10(x231, x232, x233, Succ(Zero), x234) -> new_pr2F0G11(x231, x232, x233, x234) which results in the following constraint: (1) (new_pr2F0G10(x227, x228, Succ(x229), x229, x230)=new_pr2F0G10(x231, x232, x233, Succ(Zero), x234) ==> new_pr2F0G(x227, x228, Neg(Succ(Succ(x229))), x230)_>=_new_pr2F0G10(x227, x228, Succ(x229), x229, x230)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x227, x228, Neg(Succ(Succ(Succ(Zero)))), x230)_>=_new_pr2F0G10(x227, x228, Succ(Succ(Zero)), Succ(Zero), x230)) *We consider the chain new_pr2F0G(x235, x236, Neg(Succ(Succ(x237))), x238) -> new_pr2F0G10(x235, x236, Succ(x237), x237, x238), new_pr2F0G10(x239, x240, x241, Zero, x242) -> new_pr2F0G(x239, new_sr3(x240, x242), Neg(new_primDivNatS2(x241)), x242) which results in the following constraint: (1) (new_pr2F0G10(x235, x236, Succ(x237), x237, x238)=new_pr2F0G10(x239, x240, x241, Zero, x242) ==> new_pr2F0G(x235, x236, Neg(Succ(Succ(x237))), x238)_>=_new_pr2F0G10(x235, x236, Succ(x237), x237, x238)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x235, x236, Neg(Succ(Succ(Zero))), x238)_>=_new_pr2F0G10(x235, x236, Succ(Zero), Zero, x238)) For Pair new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) the following chains were created: *We consider the chain new_pr2F0G10(x273, x274, x275, Succ(Succ(x276)), x277) -> new_pr2F0G10(x273, x274, x275, x276, x277), new_pr2F0G10(x278, x279, x280, Succ(Succ(x281)), x282) -> new_pr2F0G10(x278, x279, x280, x281, x282) which results in the following constraint: (1) (new_pr2F0G10(x273, x274, x275, x276, x277)=new_pr2F0G10(x278, x279, x280, Succ(Succ(x281)), x282) ==> new_pr2F0G10(x273, x274, x275, Succ(Succ(x276)), x277)_>=_new_pr2F0G10(x273, x274, x275, x276, x277)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G10(x273, x274, x275, Succ(Succ(Succ(Succ(x281)))), x277)_>=_new_pr2F0G10(x273, x274, x275, Succ(Succ(x281)), x277)) *We consider the chain new_pr2F0G10(x283, x284, x285, Succ(Succ(x286)), x287) -> new_pr2F0G10(x283, x284, x285, x286, x287), new_pr2F0G10(x288, x289, x290, Succ(Zero), x291) -> new_pr2F0G11(x288, x289, x290, x291) which results in the following constraint: (1) (new_pr2F0G10(x283, x284, x285, x286, x287)=new_pr2F0G10(x288, x289, x290, Succ(Zero), x291) ==> new_pr2F0G10(x283, x284, x285, Succ(Succ(x286)), x287)_>=_new_pr2F0G10(x283, x284, x285, x286, x287)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G10(x283, x284, x285, Succ(Succ(Succ(Zero))), x287)_>=_new_pr2F0G10(x283, x284, x285, Succ(Zero), x287)) *We consider the chain new_pr2F0G10(x292, x293, x294, Succ(Succ(x295)), x296) -> new_pr2F0G10(x292, x293, x294, x295, x296), new_pr2F0G10(x297, x298, x299, Zero, x300) -> new_pr2F0G(x297, new_sr3(x298, x300), Neg(new_primDivNatS2(x299)), x300) which results in the following constraint: (1) (new_pr2F0G10(x292, x293, x294, x295, x296)=new_pr2F0G10(x297, x298, x299, Zero, x300) ==> new_pr2F0G10(x292, x293, x294, Succ(Succ(x295)), x296)_>=_new_pr2F0G10(x292, x293, x294, x295, x296)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G10(x292, x293, x294, Succ(Succ(Zero)), x296)_>=_new_pr2F0G10(x292, x293, x294, Zero, x296)) For Pair new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) the following chains were created: *We consider the chain new_pr2F0G10(x309, x310, x311, Succ(Zero), x312) -> new_pr2F0G11(x309, x310, x311, x312), new_pr2F0G11(x313, x314, x315, x316) -> new_pr2F1(x314, x315, Pos(Succ(Zero)), x313, x316) which results in the following constraint: (1) (new_pr2F0G11(x309, x310, x311, x312)=new_pr2F0G11(x313, x314, x315, x316) ==> new_pr2F0G10(x309, x310, x311, Succ(Zero), x312)_>=_new_pr2F0G11(x309, x310, x311, x312)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G10(x309, x310, x311, Succ(Zero), x312)_>=_new_pr2F0G11(x309, x310, x311, x312)) For Pair new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) the following chains were created: *We consider the chain new_pr2F0G10(x345, x346, x347, Zero, x348) -> new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(x347)), x348), new_pr2F0G(x349, x350, Neg(Succ(Zero)), x351) -> new_pr2F0G11(x349, x350, Zero, x351) which results in the following constraint: (1) (new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(x347)), x348)=new_pr2F0G(x349, x350, Neg(Succ(Zero)), x351) ==> new_pr2F0G10(x345, x346, x347, Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(x347)), x348)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primDivNatS2(x347)=Succ(Zero) ==> new_pr2F0G10(x345, x346, x347, Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(x347)), x348)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x347)=Succ(Zero) which results in the following new constraint: (3) (new_primDivNatS02(x384, Zero, x384, Zero)=Succ(Zero) ==> new_pr2F0G10(x345, x346, Succ(x384), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(x384))), x348)) We simplified constraint (3) using rule (VII) which results in the following new constraint: (4) (Zero=x385 & x384=x386 & Zero=x387 & new_primDivNatS02(x384, x385, x386, x387)=Succ(Zero) ==> new_pr2F0G10(x345, x346, Succ(x384), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(x384))), x348)) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x384, x385, x386, x387)=Succ(Zero) which results in the following new constraints: (5) (new_primDivNatS01(x389, x388)=Succ(Zero) & Zero=x388 & x389=Zero & Zero=Zero ==> new_pr2F0G10(x345, x346, Succ(x389), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(x389))), x348)) (6) (new_primDivNatS01(x392, x391)=Succ(Zero) & Zero=x391 & x392=Succ(x390) & Zero=Zero ==> new_pr2F0G10(x345, x346, Succ(x392), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(x392))), x348)) (7) (new_primDivNatS02(x399, x398, x397, x396)=Succ(Zero) & Zero=x398 & x399=Succ(x397) & Zero=Succ(x396) & (\/x400,x401,x402:new_primDivNatS02(x399, x398, x397, x396)=Succ(Zero) & Zero=x398 & x399=x397 & Zero=x396 ==> new_pr2F0G10(x400, x401, Succ(x399), Zero, x402)_>=_new_pr2F0G(x400, new_sr3(x401, x402), Neg(new_primDivNatS2(Succ(x399))), x402)) ==> new_pr2F0G10(x345, x346, Succ(x399), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(x399))), x348)) We simplified constraint (5) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (8) (new_pr2F0G10(x345, x346, Succ(Zero), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(Zero))), x348)) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (9) (new_pr2F0G10(x345, x346, Succ(Succ(x390)), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(Succ(x390)))), x348)) We solved constraint (7) using rules (I), (II). *We consider the chain new_pr2F0G10(x364, x365, x366, Zero, x367) -> new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(x366)), x367), new_pr2F0G(x368, x369, Neg(Succ(Succ(x370))), x371) -> new_pr2F0G10(x368, x369, Succ(x370), x370, x371) which results in the following constraint: (1) (new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(x366)), x367)=new_pr2F0G(x368, x369, Neg(Succ(Succ(x370))), x371) ==> new_pr2F0G10(x364, x365, x366, Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(x366)), x367)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primDivNatS2(x366)=Succ(Succ(x370)) ==> new_pr2F0G10(x364, x365, x366, Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(x366)), x367)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x366)=Succ(Succ(x370)) which results in the following new constraint: (3) (new_primDivNatS02(x405, Zero, x405, Zero)=Succ(Succ(x370)) ==> new_pr2F0G10(x364, x365, Succ(x405), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(x405))), x367)) We simplified constraint (3) using rule (VII) which results in the following new constraint: (4) (Zero=x406 & x405=x407 & Zero=x408 & new_primDivNatS02(x405, x406, x407, x408)=Succ(Succ(x370)) ==> new_pr2F0G10(x364, x365, Succ(x405), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(x405))), x367)) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x405, x406, x407, x408)=Succ(Succ(x370)) which results in the following new constraints: (5) (new_primDivNatS01(x410, x409)=Succ(Succ(x370)) & Zero=x409 & x410=Zero & Zero=Zero ==> new_pr2F0G10(x364, x365, Succ(x410), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(x410))), x367)) (6) (new_primDivNatS01(x413, x412)=Succ(Succ(x370)) & Zero=x412 & x413=Succ(x411) & Zero=Zero ==> new_pr2F0G10(x364, x365, Succ(x413), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(x413))), x367)) (7) (new_primDivNatS02(x420, x419, x418, x417)=Succ(Succ(x370)) & Zero=x419 & x420=Succ(x418) & Zero=Succ(x417) & (\/x421,x422,x423,x424:new_primDivNatS02(x420, x419, x418, x417)=Succ(Succ(x421)) & Zero=x419 & x420=x418 & Zero=x417 ==> new_pr2F0G10(x422, x423, Succ(x420), Zero, x424)_>=_new_pr2F0G(x422, new_sr3(x423, x424), Neg(new_primDivNatS2(Succ(x420))), x424)) ==> new_pr2F0G10(x364, x365, Succ(x420), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(x420))), x367)) We simplified constraint (5) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (8) (new_pr2F0G10(x364, x365, Succ(Zero), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(Zero))), x367)) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (9) (new_pr2F0G10(x364, x365, Succ(Succ(x411)), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(Succ(x411)))), x367)) We solved constraint (7) using rules (I), (II). To summarize, we get the following constraints P__>=_ for the following pairs. *new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) *(new_pr2F0(x4, Neg(Succ(Zero)), x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, Neg(Succ(Zero)), x7)) *(new_pr2F0(x23, Neg(Succ(Succ(x29))), x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, Neg(Succ(Succ(x29))), x26)) *new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) *(new_pr2F0G(x49, x50, Neg(Succ(Zero)), x51)_>=_new_pr2F0G11(x49, x50, Zero, x51)) *new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) *(new_pr2F0G11(x86, x87, x88, x89)_>=_new_pr2F1(x87, x88, Pos(Succ(Zero)), x86, x89)) *new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) *(new_pr2F1(x130, x131, Pos(Succ(Zero)), x132, x133)_>=_new_pr2F30(False, x130, x131, Pos(Succ(Zero)), x132, x133)) *new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) *(new_pr2F30(False, x154, x155, Pos(Succ(Zero)), x156, x157)_>=_new_pr2F0(x154, Neg(Succ(Succ(new_primPlusNat0(x155, Zero)))), x156, x157)) *new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) *(new_pr2F0G(x218, x219, Neg(Succ(Succ(Succ(Succ(x225))))), x221)_>=_new_pr2F0G10(x218, x219, Succ(Succ(Succ(x225))), Succ(Succ(x225)), x221)) *(new_pr2F0G(x227, x228, Neg(Succ(Succ(Succ(Zero)))), x230)_>=_new_pr2F0G10(x227, x228, Succ(Succ(Zero)), Succ(Zero), x230)) *(new_pr2F0G(x235, x236, Neg(Succ(Succ(Zero))), x238)_>=_new_pr2F0G10(x235, x236, Succ(Zero), Zero, x238)) *new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) *(new_pr2F0G10(x273, x274, x275, Succ(Succ(Succ(Succ(x281)))), x277)_>=_new_pr2F0G10(x273, x274, x275, Succ(Succ(x281)), x277)) *(new_pr2F0G10(x283, x284, x285, Succ(Succ(Succ(Zero))), x287)_>=_new_pr2F0G10(x283, x284, x285, Succ(Zero), x287)) *(new_pr2F0G10(x292, x293, x294, Succ(Succ(Zero)), x296)_>=_new_pr2F0G10(x292, x293, x294, Zero, x296)) *new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) *(new_pr2F0G10(x309, x310, x311, Succ(Zero), x312)_>=_new_pr2F0G11(x309, x310, x311, x312)) *new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) *(new_pr2F0G10(x345, x346, Succ(Zero), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(Zero))), x348)) *(new_pr2F0G10(x345, x346, Succ(Succ(x390)), Zero, x348)_>=_new_pr2F0G(x345, new_sr3(x346, x348), Neg(new_primDivNatS2(Succ(Succ(x390)))), x348)) *(new_pr2F0G10(x364, x365, Succ(Zero), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(Zero))), x367)) *(new_pr2F0G10(x364, x365, Succ(Succ(x411)), Zero, x367)_>=_new_pr2F0G(x364, new_sr3(x365, x367), Neg(new_primDivNatS2(Succ(Succ(x411)))), x367)) 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. ---------------------------------------- (859) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (860) QDPPairToRuleProof (EQUIVALENT) The dependency pair new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) was transformed to the following new rules: anew_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Zero)) -> cons_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) -> cons_new_pr2F0G10(Zero) the following new pairs maintain the fan-in: new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) the following new pairs maintain the fan-out: H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) ---------------------------------------- (861) Complex Obligation (AND) ---------------------------------------- (862) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Zero)) -> cons_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) -> cons_new_pr2F0G10(Zero) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) new_new_pr2F0G10(Succ(Succ(x0))) anew_new_pr2F0G10(Succ(Succ(x0))) new_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (863) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (864) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Zero)) -> cons_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) -> cons_new_pr2F0G10(Zero) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (865) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) the following chains were created: *We consider the chain new_pr2F0(x4, x5, x6, x7) -> new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7), new_pr2F0G(x8, x9, Neg(Succ(Zero)), x10) -> new_pr2F0G11(x8, x9, Zero, x10) which results in the following constraint: (1) (new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7)=new_pr2F0G(x8, x9, Neg(Succ(Zero)), x10) ==> new_pr2F0(x4, x5, x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, x5, x7)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0(x4, Neg(Succ(Zero)), x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, Neg(Succ(Zero)), x7)) *We consider the chain new_pr2F0(x23, x24, x25, x26) -> new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26), new_pr2F0G(x27, x28, Neg(Succ(Succ(x29))), x30) -> new_pr2F0G10(x27, x28, Succ(x29), x29, x30) which results in the following constraint: (1) (new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26)=new_pr2F0G(x27, x28, Neg(Succ(Succ(x29))), x30) ==> new_pr2F0(x23, x24, x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, x24, x26)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0(x23, Neg(Succ(Succ(x29))), x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, Neg(Succ(Succ(x29))), x26)) *We consider the chain new_pr2F0(x39, x40, x41, x42) -> new_pr2F0G(new_sr0(x39, x41, x42), x39, x40, x42), new_pr2F0G(x43, x44, Neg(Succ(Succ(x45))), x46) -> H(x43, x44, Succ(x45), x46, anew_new_pr2F0G10(x45)) which results in the following constraint: (1) (new_pr2F0G(new_sr0(x39, x41, x42), x39, x40, x42)=new_pr2F0G(x43, x44, Neg(Succ(Succ(x45))), x46) ==> new_pr2F0(x39, x40, x41, x42)_>=_new_pr2F0G(new_sr0(x39, x41, x42), x39, x40, x42)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0(x39, Neg(Succ(Succ(x45))), x41, x42)_>=_new_pr2F0G(new_sr0(x39, x41, x42), x39, Neg(Succ(Succ(x45))), x42)) For Pair new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) the following chains were created: *We consider the chain new_pr2F0G(x61, x62, Neg(Succ(Zero)), x63) -> new_pr2F0G11(x61, x62, Zero, x63), new_pr2F0G11(x64, x65, x66, x67) -> new_pr2F1(x65, x66, Pos(Succ(Zero)), x64, x67) which results in the following constraint: (1) (new_pr2F0G11(x61, x62, Zero, x63)=new_pr2F0G11(x64, x65, x66, x67) ==> new_pr2F0G(x61, x62, Neg(Succ(Zero)), x63)_>=_new_pr2F0G11(x61, x62, Zero, x63)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G(x61, x62, Neg(Succ(Zero)), x63)_>=_new_pr2F0G11(x61, x62, Zero, x63)) For Pair new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) the following chains were created: *We consider the chain new_pr2F0G11(x104, x105, x106, x107) -> new_pr2F1(x105, x106, Pos(Succ(Zero)), x104, x107), new_pr2F1(x108, x109, Pos(Succ(Zero)), x110, x111) -> new_pr2F30(False, x108, x109, Pos(Succ(Zero)), x110, x111) which results in the following constraint: (1) (new_pr2F1(x105, x106, Pos(Succ(Zero)), x104, x107)=new_pr2F1(x108, x109, Pos(Succ(Zero)), x110, x111) ==> new_pr2F0G11(x104, x105, x106, x107)_>=_new_pr2F1(x105, x106, Pos(Succ(Zero)), x104, x107)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G11(x104, x105, x106, x107)_>=_new_pr2F1(x105, x106, Pos(Succ(Zero)), x104, x107)) For Pair new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) the following chains were created: *We consider the chain new_pr2F1(x156, x157, Pos(Succ(Zero)), x158, x159) -> new_pr2F30(False, x156, x157, Pos(Succ(Zero)), x158, x159), new_pr2F30(False, x160, x161, Pos(Succ(Zero)), x162, x163) -> new_pr2F0(x160, Neg(Succ(Succ(new_primPlusNat0(x161, Zero)))), x162, x163) which results in the following constraint: (1) (new_pr2F30(False, x156, x157, Pos(Succ(Zero)), x158, x159)=new_pr2F30(False, x160, x161, Pos(Succ(Zero)), x162, x163) ==> new_pr2F1(x156, x157, Pos(Succ(Zero)), x158, x159)_>=_new_pr2F30(False, x156, x157, Pos(Succ(Zero)), x158, x159)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F1(x156, x157, Pos(Succ(Zero)), x158, x159)_>=_new_pr2F30(False, x156, x157, Pos(Succ(Zero)), x158, x159)) For Pair new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) the following chains were created: *We consider the chain new_pr2F30(False, x188, x189, Pos(Succ(Zero)), x190, x191) -> new_pr2F0(x188, Neg(Succ(Succ(new_primPlusNat0(x189, Zero)))), x190, x191), new_pr2F0(x192, x193, x194, x195) -> new_pr2F0G(new_sr0(x192, x194, x195), x192, x193, x195) which results in the following constraint: (1) (new_pr2F0(x188, Neg(Succ(Succ(new_primPlusNat0(x189, Zero)))), x190, x191)=new_pr2F0(x192, x193, x194, x195) ==> new_pr2F30(False, x188, x189, Pos(Succ(Zero)), x190, x191)_>=_new_pr2F0(x188, Neg(Succ(Succ(new_primPlusNat0(x189, Zero)))), x190, x191)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F30(False, x188, x189, Pos(Succ(Zero)), x190, x191)_>=_new_pr2F0(x188, Neg(Succ(Succ(new_primPlusNat0(x189, Zero)))), x190, x191)) For Pair new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) the following chains were created: *We consider the chain new_pr2F0G(x260, x261, Neg(Succ(Succ(x262))), x263) -> new_pr2F0G10(x260, x261, Succ(x262), x262, x263), new_pr2F0G10(x264, x265, x266, Succ(Zero), x267) -> new_pr2F0G11(x264, x265, x266, x267) which results in the following constraint: (1) (new_pr2F0G10(x260, x261, Succ(x262), x262, x263)=new_pr2F0G10(x264, x265, x266, Succ(Zero), x267) ==> new_pr2F0G(x260, x261, Neg(Succ(Succ(x262))), x263)_>=_new_pr2F0G10(x260, x261, Succ(x262), x262, x263)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x260, x261, Neg(Succ(Succ(Succ(Zero)))), x263)_>=_new_pr2F0G10(x260, x261, Succ(Succ(Zero)), Succ(Zero), x263)) *We consider the chain new_pr2F0G(x268, x269, Neg(Succ(Succ(x270))), x271) -> new_pr2F0G10(x268, x269, Succ(x270), x270, x271), new_pr2F0G10(x272, x273, x274, Zero, x275) -> new_pr2F0G(x272, new_sr3(x273, x275), Neg(new_primDivNatS2(x274)), x275) which results in the following constraint: (1) (new_pr2F0G10(x268, x269, Succ(x270), x270, x271)=new_pr2F0G10(x272, x273, x274, Zero, x275) ==> new_pr2F0G(x268, x269, Neg(Succ(Succ(x270))), x271)_>=_new_pr2F0G10(x268, x269, Succ(x270), x270, x271)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_pr2F0G(x268, x269, Neg(Succ(Succ(Zero))), x271)_>=_new_pr2F0G10(x268, x269, Succ(Zero), Zero, x271)) For Pair new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) the following chains were created: *We consider the chain new_pr2F0G10(x296, x297, x298, Succ(Zero), x299) -> new_pr2F0G11(x296, x297, x298, x299), new_pr2F0G11(x300, x301, x302, x303) -> new_pr2F1(x301, x302, Pos(Succ(Zero)), x300, x303) which results in the following constraint: (1) (new_pr2F0G11(x296, x297, x298, x299)=new_pr2F0G11(x300, x301, x302, x303) ==> new_pr2F0G10(x296, x297, x298, Succ(Zero), x299)_>=_new_pr2F0G11(x296, x297, x298, x299)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_pr2F0G10(x296, x297, x298, Succ(Zero), x299)_>=_new_pr2F0G11(x296, x297, x298, x299)) For Pair new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) the following chains were created: *We consider the chain new_pr2F0G10(x340, x341, x342, Zero, x343) -> new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(x342)), x343), new_pr2F0G(x344, x345, Neg(Succ(Zero)), x346) -> new_pr2F0G11(x344, x345, Zero, x346) which results in the following constraint: (1) (new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(x342)), x343)=new_pr2F0G(x344, x345, Neg(Succ(Zero)), x346) ==> new_pr2F0G10(x340, x341, x342, Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(x342)), x343)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primDivNatS2(x342)=Succ(Zero) ==> new_pr2F0G10(x340, x341, x342, Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(x342)), x343)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x342)=Succ(Zero) which results in the following new constraint: (3) (new_primDivNatS02(x539, Zero, x539, Zero)=Succ(Zero) ==> new_pr2F0G10(x340, x341, Succ(x539), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(x539))), x343)) We simplified constraint (3) using rule (VII) which results in the following new constraint: (4) (Zero=x540 & x539=x541 & Zero=x542 & new_primDivNatS02(x539, x540, x541, x542)=Succ(Zero) ==> new_pr2F0G10(x340, x341, Succ(x539), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(x539))), x343)) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x539, x540, x541, x542)=Succ(Zero) which results in the following new constraints: (5) (new_primDivNatS01(x544, x543)=Succ(Zero) & Zero=x543 & x544=Zero & Zero=Zero ==> new_pr2F0G10(x340, x341, Succ(x544), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(x544))), x343)) (6) (new_primDivNatS01(x547, x546)=Succ(Zero) & Zero=x546 & x547=Succ(x545) & Zero=Zero ==> new_pr2F0G10(x340, x341, Succ(x547), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(x547))), x343)) (7) (new_primDivNatS02(x554, x553, x552, x551)=Succ(Zero) & Zero=x553 & x554=Succ(x552) & Zero=Succ(x551) & (\/x555,x556,x557:new_primDivNatS02(x554, x553, x552, x551)=Succ(Zero) & Zero=x553 & x554=x552 & Zero=x551 ==> new_pr2F0G10(x555, x556, Succ(x554), Zero, x557)_>=_new_pr2F0G(x555, new_sr3(x556, x557), Neg(new_primDivNatS2(Succ(x554))), x557)) ==> new_pr2F0G10(x340, x341, Succ(x554), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(x554))), x343)) We simplified constraint (5) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (8) (new_pr2F0G10(x340, x341, Succ(Zero), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(Zero))), x343)) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (9) (new_pr2F0G10(x340, x341, Succ(Succ(x545)), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(Succ(x545)))), x343)) We solved constraint (7) using rules (I), (II). *We consider the chain new_pr2F0G10(x359, x360, x361, Zero, x362) -> new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(x361)), x362), new_pr2F0G(x363, x364, Neg(Succ(Succ(x365))), x366) -> new_pr2F0G10(x363, x364, Succ(x365), x365, x366) which results in the following constraint: (1) (new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(x361)), x362)=new_pr2F0G(x363, x364, Neg(Succ(Succ(x365))), x366) ==> new_pr2F0G10(x359, x360, x361, Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(x361)), x362)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primDivNatS2(x361)=Succ(Succ(x365)) ==> new_pr2F0G10(x359, x360, x361, Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(x361)), x362)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x361)=Succ(Succ(x365)) which results in the following new constraint: (3) (new_primDivNatS02(x560, Zero, x560, Zero)=Succ(Succ(x365)) ==> new_pr2F0G10(x359, x360, Succ(x560), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(x560))), x362)) We simplified constraint (3) using rule (VII) which results in the following new constraint: (4) (Zero=x561 & x560=x562 & Zero=x563 & new_primDivNatS02(x560, x561, x562, x563)=Succ(Succ(x365)) ==> new_pr2F0G10(x359, x360, Succ(x560), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(x560))), x362)) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x560, x561, x562, x563)=Succ(Succ(x365)) which results in the following new constraints: (5) (new_primDivNatS01(x565, x564)=Succ(Succ(x365)) & Zero=x564 & x565=Zero & Zero=Zero ==> new_pr2F0G10(x359, x360, Succ(x565), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(x565))), x362)) (6) (new_primDivNatS01(x568, x567)=Succ(Succ(x365)) & Zero=x567 & x568=Succ(x566) & Zero=Zero ==> new_pr2F0G10(x359, x360, Succ(x568), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(x568))), x362)) (7) (new_primDivNatS02(x575, x574, x573, x572)=Succ(Succ(x365)) & Zero=x574 & x575=Succ(x573) & Zero=Succ(x572) & (\/x576,x577,x578,x579:new_primDivNatS02(x575, x574, x573, x572)=Succ(Succ(x576)) & Zero=x574 & x575=x573 & Zero=x572 ==> new_pr2F0G10(x577, x578, Succ(x575), Zero, x579)_>=_new_pr2F0G(x577, new_sr3(x578, x579), Neg(new_primDivNatS2(Succ(x575))), x579)) ==> new_pr2F0G10(x359, x360, Succ(x575), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(x575))), x362)) We simplified constraint (5) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (8) (new_pr2F0G10(x359, x360, Succ(Zero), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(Zero))), x362)) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (9) (new_pr2F0G10(x359, x360, Succ(Succ(x566)), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(Succ(x566)))), x362)) We solved constraint (7) using rules (I), (II). *We consider the chain new_pr2F0G10(x375, x376, x377, Zero, x378) -> new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(x377)), x378), new_pr2F0G(x379, x380, Neg(Succ(Succ(x381))), x382) -> H(x379, x380, Succ(x381), x382, anew_new_pr2F0G10(x381)) which results in the following constraint: (1) (new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(x377)), x378)=new_pr2F0G(x379, x380, Neg(Succ(Succ(x381))), x382) ==> new_pr2F0G10(x375, x376, x377, Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(x377)), x378)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primDivNatS2(x377)=Succ(Succ(x381)) ==> new_pr2F0G10(x375, x376, x377, Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(x377)), x378)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x377)=Succ(Succ(x381)) which results in the following new constraint: (3) (new_primDivNatS02(x582, Zero, x582, Zero)=Succ(Succ(x381)) ==> new_pr2F0G10(x375, x376, Succ(x582), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(x582))), x378)) We simplified constraint (3) using rule (VII) which results in the following new constraint: (4) (Zero=x583 & x582=x584 & Zero=x585 & new_primDivNatS02(x582, x583, x584, x585)=Succ(Succ(x381)) ==> new_pr2F0G10(x375, x376, Succ(x582), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(x582))), x378)) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x582, x583, x584, x585)=Succ(Succ(x381)) which results in the following new constraints: (5) (new_primDivNatS01(x587, x586)=Succ(Succ(x381)) & Zero=x586 & x587=Zero & Zero=Zero ==> new_pr2F0G10(x375, x376, Succ(x587), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(x587))), x378)) (6) (new_primDivNatS01(x590, x589)=Succ(Succ(x381)) & Zero=x589 & x590=Succ(x588) & Zero=Zero ==> new_pr2F0G10(x375, x376, Succ(x590), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(x590))), x378)) (7) (new_primDivNatS02(x597, x596, x595, x594)=Succ(Succ(x381)) & Zero=x596 & x597=Succ(x595) & Zero=Succ(x594) & (\/x598,x599,x600,x601:new_primDivNatS02(x597, x596, x595, x594)=Succ(Succ(x598)) & Zero=x596 & x597=x595 & Zero=x594 ==> new_pr2F0G10(x599, x600, Succ(x597), Zero, x601)_>=_new_pr2F0G(x599, new_sr3(x600, x601), Neg(new_primDivNatS2(Succ(x597))), x601)) ==> new_pr2F0G10(x375, x376, Succ(x597), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(x597))), x378)) We simplified constraint (5) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (8) (new_pr2F0G10(x375, x376, Succ(Zero), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(Zero))), x378)) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (9) (new_pr2F0G10(x375, x376, Succ(Succ(x588)), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(Succ(x588)))), x378)) We solved constraint (7) using rules (I), (II). For Pair new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) the following chains were created: *We consider the chain new_pr2F0G(x427, x428, Neg(Succ(Succ(x429))), x430) -> H(x427, x428, Succ(x429), x430, anew_new_pr2F0G10(x429)), H(x431, x432, x433, x434, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(x431, x432, x433, Succ(Zero), x434) which results in the following constraint: (1) (H(x427, x428, Succ(x429), x430, anew_new_pr2F0G10(x429))=H(x431, x432, x433, x434, cons_new_pr2F0G10(Succ(Zero))) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(x429))), x430)_>=_H(x427, x428, Succ(x429), x430, anew_new_pr2F0G10(x429))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_pr2F0G10(x429)=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(x429))), x430)_>=_H(x427, x428, Succ(x429), x430, anew_new_pr2F0G10(x429))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_pr2F0G10(x429)=cons_new_pr2F0G10(Succ(Zero)) which results in the following new constraint: (3) (new_new_pr2F0G10(x604)=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(x604))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(x604))), x430, anew_new_pr2F0G10(Succ(Succ(x604))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_pr2F0G10(x604)=cons_new_pr2F0G10(Succ(Zero)) which results in the following new constraints: (4) (new_new_pr2F0G10(x605)=cons_new_pr2F0G10(Succ(Zero)) & (\/x606,x607,x608:new_new_pr2F0G10(x605)=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x606, x607, Neg(Succ(Succ(Succ(Succ(x605))))), x608)_>=_H(x606, x607, Succ(Succ(Succ(x605))), x608, anew_new_pr2F0G10(Succ(Succ(x605))))) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x605))))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Succ(x605))))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x605))))))) (5) (cons_new_pr2F0G10(Succ(Zero))=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Zero)))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Zero)))))) (6) (cons_new_pr2F0G10(Zero)=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Zero))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Zero))), x430, anew_new_pr2F0G10(Succ(Succ(Zero))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x606,x607,x608:new_new_pr2F0G10(x605)=cons_new_pr2F0G10(Succ(Zero)) ==> new_pr2F0G(x606, x607, Neg(Succ(Succ(Succ(Succ(x605))))), x608)_>=_H(x606, x607, Succ(Succ(Succ(x605))), x608, anew_new_pr2F0G10(Succ(Succ(x605))))) with sigma = [x606 / x427, x607 / x428, x608 / x430] which results in the following new constraint: (7) (new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(x605))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(x605))), x430, anew_new_pr2F0G10(Succ(Succ(x605)))) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x605))))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Succ(x605))))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x605))))))) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (8) (new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Zero)))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II). *We consider the chain new_pr2F0G(x435, x436, Neg(Succ(Succ(x437))), x438) -> H(x435, x436, Succ(x437), x438, anew_new_pr2F0G10(x437)), H(x439, x440, x441, x442, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(x439, x440, x441, Zero, x442) which results in the following constraint: (1) (H(x435, x436, Succ(x437), x438, anew_new_pr2F0G10(x437))=H(x439, x440, x441, x442, cons_new_pr2F0G10(Zero)) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(x437))), x438)_>=_H(x435, x436, Succ(x437), x438, anew_new_pr2F0G10(x437))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_pr2F0G10(x437)=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(x437))), x438)_>=_H(x435, x436, Succ(x437), x438, anew_new_pr2F0G10(x437))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_pr2F0G10(x437)=cons_new_pr2F0G10(Zero) which results in the following new constraint: (3) (new_new_pr2F0G10(x609)=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(x609))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(x609))), x438, anew_new_pr2F0G10(Succ(Succ(x609))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_pr2F0G10(x609)=cons_new_pr2F0G10(Zero) which results in the following new constraints: (4) (new_new_pr2F0G10(x610)=cons_new_pr2F0G10(Zero) & (\/x611,x612,x613:new_new_pr2F0G10(x610)=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x611, x612, Neg(Succ(Succ(Succ(Succ(x610))))), x613)_>=_H(x611, x612, Succ(Succ(Succ(x610))), x613, anew_new_pr2F0G10(Succ(Succ(x610))))) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x610))))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Succ(Succ(x610))))), x438, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x610))))))) (5) (cons_new_pr2F0G10(Succ(Zero))=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Succ(Zero)))), x438, anew_new_pr2F0G10(Succ(Succ(Succ(Zero)))))) (6) (cons_new_pr2F0G10(Zero)=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Zero))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Zero))), x438, anew_new_pr2F0G10(Succ(Succ(Zero))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x611,x612,x613:new_new_pr2F0G10(x610)=cons_new_pr2F0G10(Zero) ==> new_pr2F0G(x611, x612, Neg(Succ(Succ(Succ(Succ(x610))))), x613)_>=_H(x611, x612, Succ(Succ(Succ(x610))), x613, anew_new_pr2F0G10(Succ(Succ(x610))))) with sigma = [x611 / x435, x612 / x436, x613 / x438] which results in the following new constraint: (7) (new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(x610))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(x610))), x438, anew_new_pr2F0G10(Succ(Succ(x610)))) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x610))))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Succ(Succ(x610))))), x438, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x610))))))) We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II) which results in the following new constraint: (8) (new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Zero))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Zero))), x438, anew_new_pr2F0G10(Succ(Succ(Zero))))) For Pair H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) the following chains were created: *We consider the chain H(x467, x468, x469, x470, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(x467, x468, x469, Succ(Zero), x470), new_pr2F0G10(x471, x472, x473, Succ(Zero), x474) -> new_pr2F0G11(x471, x472, x473, x474) which results in the following constraint: (1) (new_pr2F0G10(x467, x468, x469, Succ(Zero), x470)=new_pr2F0G10(x471, x472, x473, Succ(Zero), x474) ==> H(x467, x468, x469, x470, cons_new_pr2F0G10(Succ(Zero)))_>=_new_pr2F0G10(x467, x468, x469, Succ(Zero), x470)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x467, x468, x469, x470, cons_new_pr2F0G10(Succ(Zero)))_>=_new_pr2F0G10(x467, x468, x469, Succ(Zero), x470)) For Pair H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) the following chains were created: *We consider the chain H(x519, x520, x521, x522, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(x519, x520, x521, Zero, x522), new_pr2F0G10(x523, x524, x525, Zero, x526) -> new_pr2F0G(x523, new_sr3(x524, x526), Neg(new_primDivNatS2(x525)), x526) which results in the following constraint: (1) (new_pr2F0G10(x519, x520, x521, Zero, x522)=new_pr2F0G10(x523, x524, x525, Zero, x526) ==> H(x519, x520, x521, x522, cons_new_pr2F0G10(Zero))_>=_new_pr2F0G10(x519, x520, x521, Zero, x522)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x519, x520, x521, x522, cons_new_pr2F0G10(Zero))_>=_new_pr2F0G10(x519, x520, x521, Zero, x522)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) *(new_pr2F0(x4, Neg(Succ(Zero)), x6, x7)_>=_new_pr2F0G(new_sr0(x4, x6, x7), x4, Neg(Succ(Zero)), x7)) *(new_pr2F0(x23, Neg(Succ(Succ(x29))), x25, x26)_>=_new_pr2F0G(new_sr0(x23, x25, x26), x23, Neg(Succ(Succ(x29))), x26)) *(new_pr2F0(x39, Neg(Succ(Succ(x45))), x41, x42)_>=_new_pr2F0G(new_sr0(x39, x41, x42), x39, Neg(Succ(Succ(x45))), x42)) *new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) *(new_pr2F0G(x61, x62, Neg(Succ(Zero)), x63)_>=_new_pr2F0G11(x61, x62, Zero, x63)) *new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) *(new_pr2F0G11(x104, x105, x106, x107)_>=_new_pr2F1(x105, x106, Pos(Succ(Zero)), x104, x107)) *new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) *(new_pr2F1(x156, x157, Pos(Succ(Zero)), x158, x159)_>=_new_pr2F30(False, x156, x157, Pos(Succ(Zero)), x158, x159)) *new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) *(new_pr2F30(False, x188, x189, Pos(Succ(Zero)), x190, x191)_>=_new_pr2F0(x188, Neg(Succ(Succ(new_primPlusNat0(x189, Zero)))), x190, x191)) *new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) *(new_pr2F0G(x260, x261, Neg(Succ(Succ(Succ(Zero)))), x263)_>=_new_pr2F0G10(x260, x261, Succ(Succ(Zero)), Succ(Zero), x263)) *(new_pr2F0G(x268, x269, Neg(Succ(Succ(Zero))), x271)_>=_new_pr2F0G10(x268, x269, Succ(Zero), Zero, x271)) *new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) *(new_pr2F0G10(x296, x297, x298, Succ(Zero), x299)_>=_new_pr2F0G11(x296, x297, x298, x299)) *new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) *(new_pr2F0G10(x340, x341, Succ(Zero), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(Zero))), x343)) *(new_pr2F0G10(x340, x341, Succ(Succ(x545)), Zero, x343)_>=_new_pr2F0G(x340, new_sr3(x341, x343), Neg(new_primDivNatS2(Succ(Succ(x545)))), x343)) *(new_pr2F0G10(x359, x360, Succ(Zero), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(Zero))), x362)) *(new_pr2F0G10(x359, x360, Succ(Succ(x566)), Zero, x362)_>=_new_pr2F0G(x359, new_sr3(x360, x362), Neg(new_primDivNatS2(Succ(Succ(x566)))), x362)) *(new_pr2F0G10(x375, x376, Succ(Zero), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(Zero))), x378)) *(new_pr2F0G10(x375, x376, Succ(Succ(x588)), Zero, x378)_>=_new_pr2F0G(x375, new_sr3(x376, x378), Neg(new_primDivNatS2(Succ(Succ(x588)))), x378)) *new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) *(new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(x605))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(x605))), x430, anew_new_pr2F0G10(Succ(Succ(x605)))) ==> new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x605))))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Succ(x605))))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x605))))))) *(new_pr2F0G(x427, x428, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), x430)_>=_H(x427, x428, Succ(Succ(Succ(Succ(Zero)))), x430, anew_new_pr2F0G10(Succ(Succ(Succ(Zero)))))) *(new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(x610))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(x610))), x438, anew_new_pr2F0G10(Succ(Succ(x610)))) ==> new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x610))))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Succ(Succ(x610))))), x438, anew_new_pr2F0G10(Succ(Succ(Succ(Succ(x610))))))) *(new_pr2F0G(x435, x436, Neg(Succ(Succ(Succ(Succ(Zero))))), x438)_>=_H(x435, x436, Succ(Succ(Succ(Zero))), x438, anew_new_pr2F0G10(Succ(Succ(Zero))))) *H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) *(H(x467, x468, x469, x470, cons_new_pr2F0G10(Succ(Zero)))_>=_new_pr2F0G10(x467, x468, x469, Succ(Zero), x470)) *H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) *(H(x519, x520, x521, x522, cons_new_pr2F0G10(Zero))_>=_new_pr2F0G10(x519, x520, x521, Zero, x522)) 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. ---------------------------------------- (866) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0(vyv598, vyv606, vyv597, ba) -> new_pr2F0G(new_sr0(vyv598, vyv597, ba), vyv598, vyv606, ba) new_pr2F0G(vyv581, vyv302, Neg(Succ(Zero)), bb) -> new_pr2F0G11(vyv581, vyv302, Zero, bb) new_pr2F0G11(vyv597, vyv598, vyv599, ba) -> new_pr2F1(vyv598, vyv599, Pos(Succ(Zero)), vyv597, ba) new_pr2F1(z1, z2, Pos(Succ(Zero)), z0, z3) -> new_pr2F30(False, z1, z2, Pos(Succ(Zero)), z0, z3) new_pr2F30(False, z0, z1, Pos(Succ(Zero)), z2, z3) -> new_pr2F0(z0, Neg(Succ(Succ(new_primPlusNat0(z1, Zero)))), z2, z3) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> new_pr2F0G10(vyv581, vyv302, Succ(vyv564000), vyv564000, bb) new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) -> new_pr2F0G11(vyv608, vyv609, vyv610, bc) new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) -> new_pr2F0G(vyv608, new_sr3(vyv609, bc), Neg(new_primDivNatS2(vyv610)), bc) new_pr2F0G(vyv581, vyv302, Neg(Succ(Succ(vyv564000))), bb) -> H(vyv581, vyv302, Succ(vyv564000), bb, anew_new_pr2F0G10(vyv564000)) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Succ(Zero))) -> new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Zero), bc) H(vyv608, vyv609, vyv610, bc, cons_new_pr2F0G10(Zero)) -> new_pr2F0G10(vyv608, vyv609, vyv610, Zero, bc) The TRS R consists of the following rules: new_sr3(vyv609, ty_Double) -> new_sr6(vyv609) new_sr3(vyv609, ty_Int) -> new_sr7(vyv609) new_sr3(vyv609, ty_Float) -> new_sr8(vyv609) new_sr3(vyv609, ty_Integer) -> new_sr4(vyv609) new_sr3(vyv609, app(ty_Ratio, bd)) -> new_sr5(vyv609, bd) new_primDivNatS2(Succ(vyv5870)) -> new_primDivNatS02(vyv5870, Zero, vyv5870, Zero) new_primDivNatS2(Zero) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Zero) -> new_primDivNatS01(vyv676, vyv677) new_primDivNatS01(vyv676, vyv677) -> Succ(new_primDivNatS3(new_primMinusNatS2(vyv676, vyv677), Succ(vyv677))) new_primMinusNatS2(Zero, Succ(vyv6770)) -> Zero new_primMinusNatS2(Succ(vyv6760), Zero) -> Succ(vyv6760) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS2(vyv6760, vyv6770) new_primDivNatS3(Succ(Zero), Succ(vyv646000)) -> Zero new_primDivNatS3(Succ(Succ(vyv633000)), Succ(vyv646000)) -> new_primDivNatS02(vyv633000, vyv646000, vyv633000, vyv646000) new_primDivNatS3(Zero, vyv64600) -> Zero new_primDivNatS02(vyv676, vyv677, Zero, Succ(vyv6790)) -> Zero new_primDivNatS02(vyv676, vyv677, Succ(vyv6780), Succ(vyv6790)) -> new_primDivNatS02(vyv676, vyv677, vyv6780, vyv6790) new_sr5(:%(vyv3020, vyv3021), bg) -> new_reduce2Reduce1(vyv3020, vyv3020, vyv3021, vyv3021, new_esEs2(vyv3021, bg), bg) new_esEs2(vyv3021, ty_Integer) -> new_esEs0(new_sr4(vyv3021)) new_esEs2(vyv3021, ty_Int) -> new_esEs(new_sr7(vyv3021)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, True, be) -> new_error(app(ty_Ratio, be)) new_reduce2Reduce1(vyv624, vyv625, vyv626, vyv627, False, be) -> :%(new_quot(vyv624, vyv625, vyv626, vyv627, be), new_quot0(vyv626, vyv627, vyv624, vyv625, be)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Int) -> new_quot2(new_sr10(vyv624, vyv625), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot(vyv624, vyv625, vyv626, vyv627, ty_Integer) -> new_quot1(new_sr9(vyv624, vyv625), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Int) -> new_quot2(new_sr10(vyv626, vyv627), new_sr10(vyv624, vyv625), new_sr10(vyv626, vyv627)) new_quot0(vyv626, vyv627, vyv624, vyv625, ty_Integer) -> new_quot1(new_sr9(vyv626, vyv627), new_sr9(vyv624, vyv625), new_sr9(vyv626, vyv627)) new_sr9(Integer(vyv5860), Integer(vyv5850)) -> Integer(new_primMulInt0(vyv5860, vyv5850)) new_quot1(Integer(vyv6300), vyv632, vyv631) -> new_quot3(vyv6300, new_gcd20(new_esEs0(vyv632), vyv632, vyv631)) new_esEs0(Integer(vyv6290)) -> new_primEqInt(vyv6290) new_gcd20(True, vyv632, vyv631) -> new_gcd10(new_esEs0(vyv631), vyv632, vyv631) new_gcd20(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_quot3(vyv6300, Integer(vyv6430)) -> Integer(new_primQuotInt1(vyv6300, vyv6430)) new_primQuotInt1(Pos(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Neg(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Pos(Succ(vyv643000))) -> Neg(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Pos(vyv63000), Pos(Zero)) -> new_error(ty_Int) new_primQuotInt1(Neg(vyv63000), Neg(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primQuotInt1(Neg(vyv63000), Neg(Zero)) -> new_error(ty_Int) new_primQuotInt1(Pos(vyv63000), Pos(Succ(vyv643000))) -> Pos(new_primDivNatS3(vyv63000, vyv643000)) new_primDivNatS3(Succ(Succ(vyv633000)), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS0(vyv633000), Zero)) new_primDivNatS3(Succ(Zero), Zero) -> Succ(new_primDivNatS3(new_primMinusNatS1, Zero)) new_primMinusNatS1 -> Zero new_primMinusNatS0(vyv633000) -> Succ(vyv633000) new_error(ca) -> error([]) new_gcd00(vyv632, vyv631) -> new_gcd0Gcd'13(new_esEs0(new_abs0(vyv631)), vyv632, vyv631) new_abs0(Integer(Pos(Succ(vyv631000)))) -> Integer(Pos(Succ(vyv631000))) new_abs0(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_abs0(Integer(Neg(Succ(vyv631000)))) -> Integer(new_primNegInt(vyv631000)) new_abs0(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_gcd0Gcd'13(True, vyv632, vyv631) -> new_abs0(vyv632) new_gcd0Gcd'13(False, vyv632, vyv631) -> new_gcd0Gcd'00(new_abs0(vyv632), new_abs0(vyv631)) new_gcd0Gcd'11(False, vyv656, vyv657) -> new_gcd0Gcd'00(vyv656, new_rem(vyv657, vyv656)) new_gcd0Gcd'00(vyv657, vyv656) -> new_gcd0Gcd'11(new_esEs0(new_rem(vyv657, vyv656)), vyv656, vyv657) new_rem(Integer(vyv6570), Integer(vyv6560)) -> Integer(new_primRemInt(vyv6570, vyv6560)) new_gcd0Gcd'11(True, vyv656, vyv657) -> vyv656 new_primRemInt(Neg(vyv6530), Neg(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Neg(vyv6530), Pos(Succ(vyv65200))) -> Neg(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Pos(vyv6530), Pos(Succ(vyv65200))) -> Pos(new_primModNatS1(vyv6530, vyv65200)) new_primRemInt(Pos(vyv6530), Pos(Zero)) -> new_error(ty_Int) new_primRemInt(Neg(vyv6530), Neg(Zero)) -> new_error(ty_Int) new_primModNatS1(Succ(Zero), Succ(vyv652000)) -> Succ(Zero) new_primModNatS1(Zero, vyv65200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vyv653000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vyv653000), Zero) new_primModNatS1(Succ(Succ(vyv653000)), Succ(vyv652000)) -> new_primModNatS01(vyv653000, vyv652000, vyv653000, vyv652000) new_primModNatS01(vyv696, vyv697, Zero, Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS02(vyv696, vyv697) -> new_primModNatS1(new_primMinusNatS2(Succ(vyv696), Succ(vyv697)), Succ(vyv697)) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Zero) -> new_primModNatS02(vyv696, vyv697) new_primModNatS01(vyv696, vyv697, Succ(vyv6980), Succ(vyv6990)) -> new_primModNatS01(vyv696, vyv697, vyv6980, vyv6990) new_primModNatS01(vyv696, vyv697, Zero, Succ(vyv6990)) -> Succ(Succ(vyv696)) new_primNegInt(vyv63400) -> Pos(Succ(vyv63400)) new_gcd10(False, vyv632, vyv631) -> new_gcd00(vyv632, vyv631) new_gcd10(True, vyv632, vyv631) -> new_error(ty_Integer) new_primEqInt(Pos(Succ(vyv601000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vyv601000))) -> False new_primMulInt0(Pos(vyv5860), Neg(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Pos(vyv5850)) -> Neg(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Neg(vyv5860), Neg(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulInt0(Pos(vyv5860), Pos(vyv5850)) -> Pos(new_primMulNat0(vyv5860, vyv5850)) new_primMulNat0(Zero, Succ(vyv58500)) -> Zero new_primMulNat0(Succ(vyv58600), Succ(vyv58500)) -> new_primPlusNat0(new_primMulNat0(vyv58600, Succ(vyv58500)), Succ(vyv58500)) new_primMulNat0(Succ(vyv58600), Zero) -> Zero new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Succ(vyv5000)) -> Succ(Succ(new_primPlusNat0(vyv4000, vyv5000))) new_primPlusNat0(Zero, Succ(vyv5000)) -> Succ(vyv5000) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vyv4000), Zero) -> Succ(vyv4000) new_sr10(vyv586, vyv585) -> new_primMulInt0(vyv586, vyv585) new_quot2(Neg(vyv6330), vyv635, vyv634) -> new_primQuotInt2(vyv6330, new_esEs(vyv635), vyv635, vyv634) new_quot2(Pos(vyv6330), vyv635, vyv634) -> new_primQuotInt(vyv6330, new_gcd2(new_esEs(vyv635), vyv635, vyv634)) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(vyv60000))) -> new_primEqInt(Pos(Succ(vyv60000))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_esEs(Neg(Succ(vyv60000))) -> new_primEqInt(Neg(Succ(vyv60000))) new_gcd2(True, vyv635, vyv634) -> new_gcd1(new_esEs(vyv634), vyv635, vyv634) new_gcd2(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_primQuotInt(vyv6330, Pos(Succ(vyv64600))) -> Pos(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Succ(vyv64600))) -> Neg(new_primDivNatS3(vyv6330, vyv64600)) new_primQuotInt(vyv6330, Neg(Zero)) -> new_error(ty_Int) new_primQuotInt(vyv6330, Pos(Zero)) -> new_error(ty_Int) new_gcd0(vyv635, vyv634) -> new_gcd0Gcd'20(new_abs(vyv635), new_abs(vyv634)) new_abs(Neg(Zero)) -> Neg(Zero) new_abs(Neg(Succ(vyv63400))) -> new_primNegInt(vyv63400) new_abs(Pos(Succ(vyv63400))) -> Pos(Succ(vyv63400)) new_abs(Pos(Zero)) -> Pos(Zero) new_gcd0Gcd'20(vyv653, vyv652) -> new_gcd0Gcd'12(new_esEs(vyv652), vyv653, vyv652) new_gcd0Gcd'12(False, vyv653, vyv652) -> new_gcd0Gcd'20(vyv652, new_primRemInt(vyv653, vyv652)) new_gcd0Gcd'12(True, vyv653, vyv652) -> vyv653 new_gcd1(False, vyv635, vyv634) -> new_gcd0(vyv635, vyv634) new_gcd1(True, vyv635, vyv634) -> new_error(ty_Int) new_primQuotInt2(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0Gcd'12(new_esEs(new_abs(vyv634)), new_abs(vyv635), new_abs(vyv634))) new_primQuotInt2(vyv6330, True, vyv635, vyv634) -> new_primQuotInt0(vyv6330, new_esEs(vyv634), vyv635, vyv634) new_primQuotInt0(vyv6330, True, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_error(ty_Int)) new_primQuotInt0(vyv6330, False, vyv635, vyv634) -> new_primQuotInt1(Neg(vyv6330), new_gcd0(vyv635, vyv634)) new_sr7(vyv302) -> new_primMulInt(vyv302) new_primMulInt(Neg(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulInt(Pos(vyv3020)) -> Pos(new_primMulNat1(vyv3020)) new_primMulNat1(Succ(vyv30200)) -> new_primPlusNat0(new_primMulNat2(vyv30200), Succ(vyv30200)) new_primMulNat1(Zero) -> Zero new_primMulNat2(Succ(vyv302000)) -> new_primPlusNat0(new_primMulNat3(vyv302000), Succ(Succ(vyv302000))) new_primMulNat2(Zero) -> Zero new_primMulNat3(Succ(vyv3020000)) -> new_primPlusNat0(new_primMulNat0(vyv3020000, Succ(Succ(Succ(vyv3020000)))), Succ(Succ(Succ(vyv3020000)))) new_primMulNat3(Zero) -> Zero new_sr4(Integer(vyv3020)) -> Integer(new_primMulInt(vyv3020)) new_sr8(Float(vyv3020, vyv3021)) -> Float(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr6(Double(vyv3020, vyv3021)) -> Double(new_sr7(vyv3020), new_sr7(vyv3021)) new_sr(vyv586, app(ty_Ratio, bh)) -> new_sr5(vyv586, bh) new_sr(vyv586, ty_Float) -> new_sr8(vyv586) new_sr(vyv586, ty_Int) -> new_sr7(vyv586) new_sr(vyv586, ty_Integer) -> new_sr4(vyv586) new_sr(vyv586, ty_Double) -> new_sr6(vyv586) new_sr0(vyv598, vyv597, ty_Double) -> new_sr13(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Int) -> new_sr10(vyv598, vyv597) new_sr0(vyv598, vyv597, ty_Integer) -> new_sr9(vyv598, vyv597) new_sr0(vyv598, vyv597, app(ty_Ratio, bf)) -> new_sr12(vyv598, vyv597, bf) new_sr0(vyv598, vyv597, ty_Float) -> new_sr11(vyv598, vyv597) new_sr11(Float(vyv5860, vyv5861), Float(vyv5850, vyv5851)) -> Float(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) new_sr12(:%(vyv5860, vyv5861), :%(vyv5850, vyv5851), bh) -> new_reduce2Reduce1(vyv5860, vyv5850, vyv5861, vyv5851, new_esEs1(vyv5861, vyv5851, bh), bh) new_esEs1(vyv5861, vyv5851, ty_Integer) -> new_esEs0(new_sr9(vyv5861, vyv5851)) new_esEs1(vyv5861, vyv5851, ty_Int) -> new_esEs(new_sr10(vyv5861, vyv5851)) new_sr13(Double(vyv5860, vyv5861), Double(vyv5850, vyv5851)) -> Double(new_sr10(vyv5860, vyv5850), new_sr10(vyv5861, vyv5851)) anew_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Succ(vyv61100))) -> new_new_pr2F0G10(vyv61100) new_new_pr2F0G10(Succ(Zero)) -> cons_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) -> cons_new_pr2F0G10(Zero) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primQuotInt(x0, Neg(Zero)) new_primQuotInt2(x0, True, x1, x2) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primQuotInt(x0, Pos(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero)) new_gcd0Gcd'12(True, x0, x1) new_sr0(x0, x1, ty_Float) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_primMulNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat3(Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_gcd10(False, x0, x1) new_primQuotInt2(x0, False, x1, x2) new_quot3(x0, Integer(x1)) new_gcd00(x0, x1) new_primQuotInt0(x0, False, x1, x2) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primMulNat2(Succ(x0)) new_primMulNat0(Zero, Zero) new_primDivNatS2(Zero) new_primPlusNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_sr(x0, ty_Float) new_primQuotInt0(x0, True, x1, x2) new_primMulNat2(Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMulInt0(Neg(x0), Neg(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primDivNatS3(Succ(Zero), Zero) new_primModNatS02(x0, x1) new_primMulNat3(Succ(x0)) new_primMulNat1(Succ(x0)) new_sr13(Double(x0, x1), Double(x2, x3)) new_gcd2(False, x0, x1) new_sr(x0, ty_Integer) new_primMulNat0(Zero, Succ(x0)) new_gcd0Gcd'20(x0, x1) new_sr3(x0, ty_Float) new_gcd2(True, x0, x1) new_sr4(Integer(x0)) new_primDivNatS3(Zero, x0) new_sr11(Float(x0, x1), Float(x2, x3)) new_primMulInt(Neg(x0)) new_quot2(Neg(x0), x1, x2) new_sr9(Integer(x0), Integer(x1)) new_abs(Neg(Zero)) new_esEs(Neg(Succ(x0))) new_quot0(x0, x1, x2, x3, ty_Int) new_gcd1(True, x0, x1) new_sr0(x0, x1, ty_Int) new_primModNatS1(Succ(Zero), Zero) new_abs0(Integer(Pos(Succ(x0)))) new_primEqInt(Neg(Zero)) new_quot(x0, x1, x2, x3, ty_Integer) new_primNegInt(x0) new_gcd20(True, x0, x1) new_sr8(Float(x0, x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primMulInt0(Pos(x0), Pos(x1)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(x0, x1, ty_Double) new_primPlusNat0(Zero, Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_gcd0Gcd'13(True, x0, x1) new_sr5(:%(x0, x1), x2) new_sr(x0, app(ty_Ratio, x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_sr3(x0, ty_Int) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primQuotInt(x0, Neg(Succ(x1))) new_abs(Neg(Succ(x0))) new_sr0(x0, x1, app(ty_Ratio, x2)) new_sr3(x0, ty_Integer) new_gcd0Gcd'00(x0, x1) new_esEs1(x0, x1, ty_Int) new_primQuotInt(x0, Pos(Succ(x1))) new_gcd20(False, x0, x1) new_gcd0Gcd'11(False, x0, x1) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS2(Succ(x0)) new_primMinusNatS2(Zero, Zero) new_abs(Pos(Succ(x0))) new_abs0(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_gcd0(x0, x1) new_quot(x0, x1, x2, x3, ty_Int) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusNat0(Zero, Succ(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_abs0(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_sr7(x0) new_primModNatS1(Zero, x0) new_abs0(Integer(Neg(Zero))) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs2(x0, ty_Int) new_abs(Pos(Zero)) new_quot1(Integer(x0), x1, x2) new_primDivNatS01(x0, x1) new_primMinusNatS1 new_gcd1(False, x0, x1) new_sr12(:%(x0, x1), :%(x2, x3), x4) new_error(x0) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_primDivNatS3(Succ(Zero), Succ(x0)) new_sr(x0, ty_Int) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot0(x0, x1, x2, x3, ty_Integer) new_primMinusNatS0(x0) new_primDivNatS3(Succ(Succ(x0)), Zero) new_sr0(x0, x1, ty_Integer) new_esEs1(x0, x1, ty_Integer) new_gcd10(True, x0, x1) new_sr(x0, ty_Double) new_sr10(x0, x1) new_primMulInt0(Pos(x0), Neg(x1)) new_primMulInt0(Neg(x0), Pos(x1)) new_gcd0Gcd'13(False, x0, x1) new_esEs2(x0, ty_Integer) new_sr6(Double(x0, x1)) new_sr3(x0, app(ty_Ratio, x1)) new_primMulInt(Pos(x0)) new_primQuotInt1(Pos(x0), Pos(Zero)) new_gcd0Gcd'11(True, x0, x1) new_sr3(x0, ty_Double) new_gcd0Gcd'12(False, x0, x1) new_quot2(Pos(x0), x1, x2) new_rem(Integer(x0), Integer(x1)) new_primDivNatS3(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_esEs(Neg(Zero)) new_primMulNat1(Zero) new_esEs0(Integer(x0)) new_new_pr2F0G10(Succ(Succ(x0))) anew_new_pr2F0G10(Succ(Succ(x0))) new_new_pr2F0G10(Succ(Zero)) new_new_pr2F0G10(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (867) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (868) 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_pr2F0G10(vyv608, vyv609, vyv610, Succ(Succ(vyv61100)), bc) -> new_pr2F0G10(vyv608, vyv609, vyv610, vyv61100, bc) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 >= 5 ---------------------------------------- (869) YES ---------------------------------------- (870) Obligation: Q DP problem: The TRS P consists of the following rules: new_pr2F31(Succ(vyv4000), Succ(vyv5000), vyv3, h) -> new_pr2F31(vyv4000, vyv5000, vyv3, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (871) 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_pr2F31(Succ(vyv4000), Succ(vyv5000), vyv3, h) -> new_pr2F31(vyv4000, vyv5000, vyv3, h) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3, 4 >= 4 ---------------------------------------- (872) YES ---------------------------------------- (873) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vyv6760), Succ(vyv6770)) -> new_primMinusNatS(vyv6760, vyv6770) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (874) 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(vyv6760), Succ(vyv6770)) -> new_primMinusNatS(vyv6760, vyv6770) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (875) YES ---------------------------------------- (876) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNat(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat(vyv5870, vyv603000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (877) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMinusNat(Succ(vyv5870), Succ(vyv603000)) -> new_primMinusNat(vyv5870, vyv603000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (878) YES ---------------------------------------- (879) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vyv4000), Succ(vyv5000)) -> new_primPlusNat(vyv4000, vyv5000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (880) 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(vyv4000), Succ(vyv5000)) -> new_primPlusNat(vyv4000, vyv5000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (881) YES ---------------------------------------- (882) 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="(^) vyv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(^) vyv3 vyv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="pr4 vyv3 vyv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="pr3 (vyv4 == fromInt (Pos Zero)) vyv3 vyv4",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="pr3 (primEqInt vyv4 (fromInt (Pos Zero))) vyv3 vyv4",fontsize=16,color="burlywood",shape="box"];11626[label="vyv4/Pos vyv40",fontsize=10,color="white",style="solid",shape="box"];7 -> 11626[label="",style="solid", color="burlywood", weight=9]; 11626 -> 8[label="",style="solid", color="burlywood", weight=3]; 11627[label="vyv4/Neg vyv40",fontsize=10,color="white",style="solid",shape="box"];7 -> 11627[label="",style="solid", color="burlywood", weight=9]; 11627 -> 9[label="",style="solid", color="burlywood", weight=3]; 8[label="pr3 (primEqInt (Pos vyv40) (fromInt (Pos Zero))) vyv3 (Pos vyv40)",fontsize=16,color="burlywood",shape="box"];11628[label="vyv40/Succ vyv400",fontsize=10,color="white",style="solid",shape="box"];8 -> 11628[label="",style="solid", color="burlywood", weight=9]; 11628 -> 10[label="",style="solid", color="burlywood", weight=3]; 11629[label="vyv40/Zero",fontsize=10,color="white",style="solid",shape="box"];8 -> 11629[label="",style="solid", color="burlywood", weight=9]; 11629 -> 11[label="",style="solid", color="burlywood", weight=3]; 9[label="pr3 (primEqInt (Neg vyv40) (fromInt (Pos Zero))) vyv3 (Neg vyv40)",fontsize=16,color="burlywood",shape="box"];11630[label="vyv40/Succ vyv400",fontsize=10,color="white",style="solid",shape="box"];9 -> 11630[label="",style="solid", color="burlywood", weight=9]; 11630 -> 12[label="",style="solid", color="burlywood", weight=3]; 11631[label="vyv40/Zero",fontsize=10,color="white",style="solid",shape="box"];9 -> 11631[label="",style="solid", color="burlywood", weight=9]; 11631 -> 13[label="",style="solid", color="burlywood", weight=3]; 10[label="pr3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];10 -> 14[label="",style="solid", color="black", weight=3]; 11[label="pr3 (primEqInt (Pos Zero) (fromInt (Pos Zero))) vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];11 -> 15[label="",style="solid", color="black", weight=3]; 12[label="pr3 (primEqInt (Neg (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];12 -> 16[label="",style="solid", color="black", weight=3]; 13[label="pr3 (primEqInt (Neg Zero) (fromInt (Pos Zero))) vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];13 -> 17[label="",style="solid", color="black", weight=3]; 14[label="pr3 (primEqInt (Pos (Succ vyv400)) (Pos Zero)) vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];14 -> 18[label="",style="solid", color="black", weight=3]; 15[label="pr3 (primEqInt (Pos Zero) (Pos Zero)) vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];15 -> 19[label="",style="solid", color="black", weight=3]; 16[label="pr3 (primEqInt (Neg (Succ vyv400)) (Pos Zero)) vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];16 -> 20[label="",style="solid", color="black", weight=3]; 17[label="pr3 (primEqInt (Neg Zero) (Pos Zero)) vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];17 -> 21[label="",style="solid", color="black", weight=3]; 18[label="pr3 False vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];18 -> 22[label="",style="solid", color="black", weight=3]; 19[label="pr3 True vyv3 (Pos Zero)",fontsize=16,color="black",shape="box"];19 -> 23[label="",style="solid", color="black", weight=3]; 20[label="pr3 False vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];20 -> 24[label="",style="solid", color="black", weight=3]; 21[label="pr3 True vyv3 (Neg Zero)",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 22[label="pr2 vyv3 (Pos (Succ vyv400))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 23[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11632[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];23 -> 11632[label="",style="solid", color="blue", weight=9]; 11632 -> 27[label="",style="solid", color="blue", weight=3]; 11633[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];23 -> 11633[label="",style="solid", color="blue", weight=9]; 11633 -> 28[label="",style="solid", color="blue", weight=3]; 11634[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];23 -> 11634[label="",style="solid", color="blue", weight=9]; 11634 -> 29[label="",style="solid", color="blue", weight=3]; 11635[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];23 -> 11635[label="",style="solid", color="blue", weight=9]; 11635 -> 30[label="",style="solid", color="blue", weight=3]; 11636[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];23 -> 11636[label="",style="solid", color="blue", weight=9]; 11636 -> 31[label="",style="solid", color="blue", weight=3]; 24[label="pr2 vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11637[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];25 -> 11637[label="",style="solid", color="blue", weight=9]; 11637 -> 33[label="",style="solid", color="blue", weight=3]; 11638[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];25 -> 11638[label="",style="solid", color="blue", weight=9]; 11638 -> 34[label="",style="solid", color="blue", weight=3]; 11639[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];25 -> 11639[label="",style="solid", color="blue", weight=9]; 11639 -> 35[label="",style="solid", color="blue", weight=3]; 11640[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];25 -> 11640[label="",style="solid", color="blue", weight=9]; 11640 -> 36[label="",style="solid", color="blue", weight=3]; 11641[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];25 -> 11641[label="",style="solid", color="blue", weight=9]; 11641 -> 37[label="",style="solid", color="blue", weight=3]; 26[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (Pos (Succ vyv400) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];26 -> 38[label="",style="solid", color="black", weight=3]; 27[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];27 -> 39[label="",style="solid", color="black", weight=3]; 28[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];28 -> 40[label="",style="solid", color="black", weight=3]; 29[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];29 -> 41[label="",style="solid", color="black", weight=3]; 30[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];30 -> 42[label="",style="solid", color="black", weight=3]; 31[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];31 -> 43[label="",style="solid", color="black", weight=3]; 32[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (Neg (Succ vyv400) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];32 -> 44[label="",style="solid", color="black", weight=3]; 33 -> 27[label="",style="dashed", color="red", weight=0]; 33[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];34 -> 28[label="",style="dashed", color="red", weight=0]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];35 -> 29[label="",style="dashed", color="red", weight=0]; 35[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];36 -> 30[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];37 -> 31[label="",style="dashed", color="red", weight=0]; 37[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];38[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (compare (Pos (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];38 -> 45[label="",style="solid", color="black", weight=3]; 39[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];39 -> 46[label="",style="solid", color="black", weight=3]; 40[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];40 -> 47[label="",style="solid", color="black", weight=3]; 41[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];42[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];43[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];43 -> 48[label="",style="solid", color="black", weight=3]; 44[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (compare (Neg (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];44 -> 49[label="",style="solid", color="black", weight=3]; 45[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpInt (Pos (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];45 -> 50[label="",style="solid", color="black", weight=3]; 46[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];46 -> 51[label="",style="dashed", color="green", weight=3]; 46 -> 52[label="",style="dashed", color="green", weight=3]; 47[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];48[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];49[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (primCmpInt (Neg (Succ vyv400)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="black",shape="box"];49 -> 53[label="",style="solid", color="black", weight=3]; 50[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpInt (Pos (Succ vyv400)) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3]; 51[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11642[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];51 -> 11642[label="",style="solid", color="blue", weight=9]; 11642 -> 55[label="",style="solid", color="blue", weight=3]; 11643[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];51 -> 11643[label="",style="solid", color="blue", weight=9]; 11643 -> 56[label="",style="solid", color="blue", weight=3]; 52[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];11644[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];52 -> 11644[label="",style="solid", color="blue", weight=9]; 11644 -> 57[label="",style="solid", color="blue", weight=3]; 11645[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];52 -> 11645[label="",style="solid", color="blue", weight=9]; 11645 -> 58[label="",style="solid", color="blue", weight=3]; 53[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (primCmpInt (Neg (Succ vyv400)) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];53 -> 59[label="",style="solid", color="black", weight=3]; 54[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (primCmpNat (Succ vyv400) Zero == GT)",fontsize=16,color="black",shape="box"];54 -> 60[label="",style="solid", color="black", weight=3]; 55 -> 29[label="",style="dashed", color="red", weight=0]; 55[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];56 -> 30[label="",style="dashed", color="red", weight=0]; 56[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];57 -> 29[label="",style="dashed", color="red", weight=0]; 57[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];58 -> 30[label="",style="dashed", color="red", weight=0]; 58[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];59[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) (LT == GT)",fontsize=16,color="black",shape="box"];59 -> 61[label="",style="solid", color="black", weight=3]; 60[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) (GT == GT)",fontsize=16,color="black",shape="box"];60 -> 62[label="",style="solid", color="black", weight=3]; 61[label="pr2Pr1 vyv3 (Neg (Succ vyv400)) False",fontsize=16,color="black",shape="box"];61 -> 63[label="",style="solid", color="black", weight=3]; 62[label="pr2Pr1 vyv3 (Pos (Succ vyv400)) True",fontsize=16,color="black",shape="box"];62 -> 64[label="",style="solid", color="black", weight=3]; 63[label="pr0 vyv3 (Neg (Succ vyv400))",fontsize=16,color="black",shape="box"];63 -> 65[label="",style="solid", color="black", weight=3]; 64 -> 66[label="",style="dashed", color="red", weight=0]; 64[label="pr2F vyv3 (Pos (Succ vyv400) - fromInt (Pos (Succ Zero))) vyv3",fontsize=16,color="magenta"];64 -> 67[label="",style="dashed", color="magenta", weight=3]; 65[label="error []",fontsize=16,color="black",shape="triangle"];65 -> 68[label="",style="solid", color="black", weight=3]; 67 -> 29[label="",style="dashed", color="red", weight=0]; 67[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];66[label="pr2F vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="triangle"];66 -> 69[label="",style="solid", color="black", weight=3]; 68[label="error []",fontsize=16,color="red",shape="box"];69[label="pr2F4 vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];69 -> 70[label="",style="solid", color="black", weight=3]; 70[label="pr2F3 (Pos (Succ vyv400) - vyv5 == fromInt (Pos Zero)) vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];70 -> 71[label="",style="solid", color="black", weight=3]; 71[label="pr2F3 (primEqInt (Pos (Succ vyv400) - vyv5) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400) - vyv5) vyv3",fontsize=16,color="black",shape="box"];71 -> 72[label="",style="solid", color="black", weight=3]; 72[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) vyv5) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) vyv5) vyv3",fontsize=16,color="burlywood",shape="box"];11646[label="vyv5/Pos vyv50",fontsize=10,color="white",style="solid",shape="box"];72 -> 11646[label="",style="solid", color="burlywood", weight=9]; 11646 -> 73[label="",style="solid", color="burlywood", weight=3]; 11647[label="vyv5/Neg vyv50",fontsize=10,color="white",style="solid",shape="box"];72 -> 11647[label="",style="solid", color="burlywood", weight=9]; 11647 -> 74[label="",style="solid", color="burlywood", weight=3]; 73[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) (Pos vyv50)) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) (Pos vyv50)) vyv3",fontsize=16,color="black",shape="box"];73 -> 75[label="",style="solid", color="black", weight=3]; 74[label="pr2F3 (primEqInt (primMinusInt (Pos (Succ vyv400)) (Neg vyv50)) (fromInt (Pos Zero))) vyv3 (primMinusInt (Pos (Succ vyv400)) (Neg vyv50)) vyv3",fontsize=16,color="black",shape="box"];74 -> 76[label="",style="solid", color="black", weight=3]; 75[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) vyv50) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) vyv50) vyv3",fontsize=16,color="burlywood",shape="box"];11648[label="vyv50/Succ vyv500",fontsize=10,color="white",style="solid",shape="box"];75 -> 11648[label="",style="solid", color="burlywood", weight=9]; 11648 -> 77[label="",style="solid", color="burlywood", weight=3]; 11649[label="vyv50/Zero",fontsize=10,color="white",style="solid",shape="box"];75 -> 11649[label="",style="solid", color="burlywood", weight=9]; 11649 -> 78[label="",style="solid", color="burlywood", weight=3]; 76[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) vyv50)) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) vyv50)) vyv3",fontsize=16,color="burlywood",shape="box"];11650[label="vyv50/Succ vyv500",fontsize=10,color="white",style="solid",shape="box"];76 -> 11650[label="",style="solid", color="burlywood", weight=9]; 11650 -> 79[label="",style="solid", color="burlywood", weight=3]; 11651[label="vyv50/Zero",fontsize=10,color="white",style="solid",shape="box"];76 -> 11651[label="",style="solid", color="burlywood", weight=9]; 11651 -> 80[label="",style="solid", color="burlywood", weight=3]; 77[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) (Succ vyv500)) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) (Succ vyv500)) vyv3",fontsize=16,color="black",shape="box"];77 -> 81[label="",style="solid", color="black", weight=3]; 78[label="pr2F3 (primEqInt (primMinusNat (Succ vyv400) Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv400) Zero) vyv3",fontsize=16,color="black",shape="box"];78 -> 82[label="",style="solid", color="black", weight=3]; 79[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) (Succ vyv500))) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) (Succ vyv500))) vyv3",fontsize=16,color="black",shape="box"];79 -> 83[label="",style="solid", color="black", weight=3]; 80[label="pr2F3 (primEqInt (Pos (primPlusNat (Succ vyv400) Zero)) (fromInt (Pos Zero))) vyv3 (Pos (primPlusNat (Succ vyv400) Zero)) vyv3",fontsize=16,color="black",shape="box"];80 -> 84[label="",style="solid", color="black", weight=3]; 81[label="pr2F3 (primEqInt (primMinusNat vyv400 vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat vyv400 vyv500) vyv3",fontsize=16,color="burlywood",shape="triangle"];11652[label="vyv400/Succ vyv4000",fontsize=10,color="white",style="solid",shape="box"];81 -> 11652[label="",style="solid", color="burlywood", weight=9]; 11652 -> 85[label="",style="solid", color="burlywood", weight=3]; 11653[label="vyv400/Zero",fontsize=10,color="white",style="solid",shape="box"];81 -> 11653[label="",style="solid", color="burlywood", weight=9]; 11653 -> 86[label="",style="solid", color="burlywood", weight=3]; 82[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="triangle"];82 -> 87[label="",style="solid", color="black", weight=3]; 83 -> 82[label="",style="dashed", color="red", weight=0]; 83[label="pr2F3 (primEqInt (Pos (Succ (Succ (primPlusNat vyv400 vyv500)))) (fromInt (Pos Zero))) vyv3 (Pos (Succ (Succ (primPlusNat vyv400 vyv500)))) vyv3",fontsize=16,color="magenta"];83 -> 88[label="",style="dashed", color="magenta", weight=3]; 84 -> 82[label="",style="dashed", color="red", weight=0]; 84[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="magenta"];85[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) vyv500) vyv3",fontsize=16,color="burlywood",shape="box"];11654[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];85 -> 11654[label="",style="solid", color="burlywood", weight=9]; 11654 -> 89[label="",style="solid", color="burlywood", weight=3]; 11655[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];85 -> 11655[label="",style="solid", color="burlywood", weight=9]; 11655 -> 90[label="",style="solid", color="burlywood", weight=3]; 86[label="pr2F3 (primEqInt (primMinusNat Zero vyv500) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero vyv500) vyv3",fontsize=16,color="burlywood",shape="box"];11656[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];86 -> 11656[label="",style="solid", color="burlywood", weight=9]; 11656 -> 91[label="",style="solid", color="burlywood", weight=3]; 11657[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 11657[label="",style="solid", color="burlywood", weight=9]; 11657 -> 92[label="",style="solid", color="burlywood", weight=3]; 87[label="pr2F3 (primEqInt (Pos (Succ vyv400)) (Pos Zero)) vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];87 -> 93[label="",style="solid", color="black", weight=3]; 88[label="Succ (primPlusNat vyv400 vyv500)",fontsize=16,color="green",shape="box"];88 -> 94[label="",style="dashed", color="green", weight=3]; 89[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];89 -> 95[label="",style="solid", color="black", weight=3]; 90[label="pr2F3 (primEqInt (primMinusNat (Succ vyv4000) Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat (Succ vyv4000) Zero) vyv3",fontsize=16,color="black",shape="box"];90 -> 96[label="",style="solid", color="black", weight=3]; 91[label="pr2F3 (primEqInt (primMinusNat Zero (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];91 -> 97[label="",style="solid", color="black", weight=3]; 92[label="pr2F3 (primEqInt (primMinusNat Zero Zero) (fromInt (Pos Zero))) vyv3 (primMinusNat Zero Zero) vyv3",fontsize=16,color="black",shape="box"];92 -> 98[label="",style="solid", color="black", weight=3]; 93[label="pr2F3 False vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];93 -> 99[label="",style="solid", color="black", weight=3]; 94[label="primPlusNat vyv400 vyv500",fontsize=16,color="burlywood",shape="triangle"];11658[label="vyv400/Succ vyv4000",fontsize=10,color="white",style="solid",shape="box"];94 -> 11658[label="",style="solid", color="burlywood", weight=9]; 11658 -> 100[label="",style="solid", color="burlywood", weight=3]; 11659[label="vyv400/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 11659[label="",style="solid", color="burlywood", weight=9]; 11659 -> 101[label="",style="solid", color="burlywood", weight=3]; 95 -> 81[label="",style="dashed", color="red", weight=0]; 95[label="pr2F3 (primEqInt (primMinusNat vyv4000 vyv5000) (fromInt (Pos Zero))) vyv3 (primMinusNat vyv4000 vyv5000) vyv3",fontsize=16,color="magenta"];95 -> 102[label="",style="dashed", color="magenta", weight=3]; 95 -> 103[label="",style="dashed", color="magenta", weight=3]; 96 -> 82[label="",style="dashed", color="red", weight=0]; 96[label="pr2F3 (primEqInt (Pos (Succ vyv4000)) (fromInt (Pos Zero))) vyv3 (Pos (Succ vyv4000)) vyv3",fontsize=16,color="magenta"];96 -> 104[label="",style="dashed", color="magenta", weight=3]; 97[label="pr2F3 (primEqInt (Neg (Succ vyv5000)) (fromInt (Pos Zero))) vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];97 -> 105[label="",style="solid", color="black", weight=3]; 98[label="pr2F3 (primEqInt (Pos Zero) (fromInt (Pos Zero))) vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];98 -> 106[label="",style="solid", color="black", weight=3]; 99[label="pr2F0 vyv3 (Pos (Succ vyv400)) vyv3",fontsize=16,color="black",shape="box"];99 -> 107[label="",style="solid", color="black", weight=3]; 100[label="primPlusNat (Succ vyv4000) vyv500",fontsize=16,color="burlywood",shape="box"];11660[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];100 -> 11660[label="",style="solid", color="burlywood", weight=9]; 11660 -> 108[label="",style="solid", color="burlywood", weight=3]; 11661[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 11661[label="",style="solid", color="burlywood", weight=9]; 11661 -> 109[label="",style="solid", color="burlywood", weight=3]; 101[label="primPlusNat Zero vyv500",fontsize=16,color="burlywood",shape="box"];11662[label="vyv500/Succ vyv5000",fontsize=10,color="white",style="solid",shape="box"];101 -> 11662[label="",style="solid", color="burlywood", weight=9]; 11662 -> 110[label="",style="solid", color="burlywood", weight=3]; 11663[label="vyv500/Zero",fontsize=10,color="white",style="solid",shape="box"];101 -> 11663[label="",style="solid", color="burlywood", weight=9]; 11663 -> 111[label="",style="solid", color="burlywood", weight=3]; 102[label="vyv4000",fontsize=16,color="green",shape="box"];103[label="vyv5000",fontsize=16,color="green",shape="box"];104[label="vyv4000",fontsize=16,color="green",shape="box"];105[label="pr2F3 (primEqInt (Neg (Succ vyv5000)) (Pos Zero)) vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];105 -> 112[label="",style="solid", color="black", weight=3]; 106[label="pr2F3 (primEqInt (Pos Zero) (Pos Zero)) vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];106 -> 113[label="",style="solid", color="black", weight=3]; 107 -> 10059[label="",style="dashed", color="red", weight=0]; 107[label="pr2F0G vyv3 vyv3 (Pos (Succ vyv400))",fontsize=16,color="magenta"];107 -> 10060[label="",style="dashed", color="magenta", weight=3]; 107 -> 10061[label="",style="dashed", color="magenta", weight=3]; 107 -> 10062[label="",style="dashed", color="magenta", weight=3]; 108[label="primPlusNat (Succ vyv4000) (Succ vyv5000)",fontsize=16,color="black",shape="box"];108 -> 115[label="",style="solid", color="black", weight=3]; 109[label="primPlusNat (Succ vyv4000) Zero",fontsize=16,color="black",shape="box"];109 -> 116[label="",style="solid", color="black", weight=3]; 110[label="primPlusNat Zero (Succ vyv5000)",fontsize=16,color="black",shape="box"];110 -> 117[label="",style="solid", color="black", weight=3]; 111[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];111 -> 118[label="",style="solid", color="black", weight=3]; 112[label="pr2F3 False vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];112 -> 119[label="",style="solid", color="black", weight=3]; 113[label="pr2F3 True vyv3 (Pos Zero) vyv3",fontsize=16,color="black",shape="box"];113 -> 120[label="",style="solid", color="black", weight=3]; 10060[label="vyv3",fontsize=16,color="green",shape="box"];10061[label="vyv3",fontsize=16,color="green",shape="box"];10062[label="Pos (Succ vyv400)",fontsize=16,color="green",shape="box"];10059[label="pr2F0G vyv581 vyv302 vyv564",fontsize=16,color="black",shape="triangle"];10059 -> 10116[label="",style="solid", color="black", weight=3]; 115[label="Succ (Succ (primPlusNat vyv4000 vyv5000))",fontsize=16,color="green",shape="box"];115 -> 122[label="",style="dashed", color="green", weight=3]; 116[label="Succ vyv4000",fontsize=16,color="green",shape="box"];117[label="Succ vyv5000",fontsize=16,color="green",shape="box"];118[label="Zero",fontsize=16,color="green",shape="box"];119[label="pr2F0 vyv3 (Neg (Succ vyv5000)) vyv3",fontsize=16,color="black",shape="box"];119 -> 123[label="",style="solid", color="black", weight=3]; 120[label="vyv3",fontsize=16,color="green",shape="box"];10116[label="pr2F0G2 vyv581 vyv302 vyv564",fontsize=16,color="black",shape="box"];10116 -> 10117[label="",style="solid", color="black", weight=3]; 122 -> 94[label="",style="dashed", color="red", weight=0]; 122[label="primPlusNat vyv4000 vyv5000",fontsize=16,color="magenta"];122 -> 125[label="",style="dashed", color="magenta", weight=3]; 122 -> 126[label="",style="dashed", color="magenta", weight=3]; 123 -> 10059[label="",style="dashed", color="red", weight=0]; 123[label="pr2F0G vyv3 vyv3 (Neg (Succ vyv5000))",fontsize=16,color="magenta"];123 -> 10063[label="",style="dashed", color="magenta", weight=3]; 123 -> 10064[label="",style="dashed", color="magenta", weight=3]; 123 -> 10065[label="",style="dashed", color="magenta", weight=3]; 10117[label="pr2F0G1 vyv581 vyv302 vyv564 (even vyv564)",fontsize=16,color="black",shape="box"];10117 -> 10118[label="",style="solid", color="black", weight=3]; 125[label="vyv4000",fontsize=16,color="green",shape="box"];126[label="vyv5000",fontsize=16,color="green",shape="box"];10063[label="vyv3",fontsize=16,color="green",shape="box"];10064[label="vyv3",fontsize=16,color="green",shape="box"];10065[label="Neg (Succ vyv5000)",fontsize=16,color="green",shape="box"];10118[label="pr2F0G1 vyv581 vyv302 vyv564 (primEvenInt vyv564)",fontsize=16,color="burlywood",shape="box"];11664[label="vyv564/Pos vyv5640",fontsize=10,color="white",style="solid",shape="box"];10118 -> 11664[label="",style="solid", color="burlywood", weight=9]; 11664 -> 10119[label="",style="solid", color="burlywood", weight=3]; 11665[label="vyv564/Neg vyv5640",fontsize=10,color="white",style="solid",shape="box"];10118 -> 11665[label="",style="solid", color="burlywood", weight=9]; 11665 -> 10120[label="",style="solid", color="burlywood", weight=3]; 10119[label="pr2F0G1 vyv581 vyv302 (Pos vyv5640) (primEvenInt (Pos vyv5640))",fontsize=16,color="black",shape="box"];10119 -> 10121[label="",style="solid", color="black", weight=3]; 10120[label="pr2F0G1 vyv581 vyv302 (Neg vyv5640) (primEvenInt (Neg vyv5640))",fontsize=16,color="black",shape="box"];10120 -> 10122[label="",style="solid", color="black", weight=3]; 10121[label="pr2F0G1 vyv581 vyv302 (Pos vyv5640) (primEvenNat vyv5640)",fontsize=16,color="burlywood",shape="box"];11666[label="vyv5640/Succ vyv56400",fontsize=10,color="white",style="solid",shape="box"];10121 -> 11666[label="",style="solid", color="burlywood", weight=9]; 11666 -> 10123[label="",style="solid", color="burlywood", weight=3]; 11667[label="vyv5640/Zero",fontsize=10,color="white",style="solid",shape="box"];10121 -> 11667[label="",style="solid", color="burlywood", weight=9]; 11667 -> 10124[label="",style="solid", color="burlywood", weight=3]; 10122[label="pr2F0G1 vyv581 vyv302 (Neg vyv5640) (primEvenNat vyv5640)",fontsize=16,color="burlywood",shape="box"];11668[label="vyv5640/Succ vyv56400",fontsize=10,color="white",style="solid",shape="box"];10122 -> 11668[label="",style="solid", color="burlywood", weight=9]; 11668 -> 10125[label="",style="solid", color="burlywood", weight=3]; 11669[label="vyv5640/Zero",fontsize=10,color="white",style="solid",shape="box"];10122 -> 11669[label="",style="solid", color="burlywood", weight=9]; 11669 -> 10126[label="",style="solid", color="burlywood", weight=3]; 10123[label="pr2F0G1 vyv581 vyv302 (Pos (Succ vyv56400)) (primEvenNat (Succ vyv56400))",fontsize=16,color="burlywood",shape="box"];11670[label="vyv56400/Succ vyv564000",fontsize=10,color="white",style="solid",shape="box"];10123 -> 11670[label="",style="solid", color="burlywood", weight=9]; 11670 -> 10127[label="",style="solid", color="burlywood", weight=3]; 11671[label="vyv56400/Zero",fontsize=10,color="white",style="solid",shape="box"];10123 -> 11671[label="",style="solid", color="burlywood", weight=9]; 11671 -> 10128[label="",style="solid", color="burlywood", weight=3]; 10124[label="pr2F0G1 vyv581 vyv302 (Pos Zero) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10124 -> 10129[label="",style="solid", color="black", weight=3]; 10125[label="pr2F0G1 vyv581 vyv302 (Neg (Succ vyv56400)) (primEvenNat (Succ vyv56400))",fontsize=16,color="burlywood",shape="box"];11672[label="vyv56400/Succ vyv564000",fontsize=10,color="white",style="solid",shape="box"];10125 -> 11672[label="",style="solid", color="burlywood", weight=9]; 11672 -> 10130[label="",style="solid", color="burlywood", weight=3]; 11673[label="vyv56400/Zero",fontsize=10,color="white",style="solid",shape="box"];10125 -> 11673[label="",style="solid", color="burlywood", weight=9]; 11673 -> 10131[label="",style="solid", color="burlywood", weight=3]; 10126[label="pr2F0G1 vyv581 vyv302 (Neg Zero) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10126 -> 10132[label="",style="solid", color="black", weight=3]; 10127[label="pr2F0G1 vyv581 vyv302 (Pos (Succ (Succ vyv564000))) (primEvenNat (Succ (Succ vyv564000)))",fontsize=16,color="black",shape="box"];10127 -> 10133[label="",style="solid", color="black", weight=3]; 10128[label="pr2F0G1 vyv581 vyv302 (Pos (Succ Zero)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10128 -> 10134[label="",style="solid", color="black", weight=3]; 10129[label="pr2F0G1 vyv581 vyv302 (Pos Zero) True",fontsize=16,color="black",shape="box"];10129 -> 10135[label="",style="solid", color="black", weight=3]; 10130[label="pr2F0G1 vyv581 vyv302 (Neg (Succ (Succ vyv564000))) (primEvenNat (Succ (Succ vyv564000)))",fontsize=16,color="black",shape="box"];10130 -> 10136[label="",style="solid", color="black", weight=3]; 10131[label="pr2F0G1 vyv581 vyv302 (Neg (Succ Zero)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10131 -> 10137[label="",style="solid", color="black", weight=3]; 10132[label="pr2F0G1 vyv581 vyv302 (Neg Zero) True",fontsize=16,color="black",shape="box"];10132 -> 10138[label="",style="solid", color="black", weight=3]; 10133 -> 10257[label="",style="dashed", color="red", weight=0]; 10133[label="pr2F0G1 vyv581 vyv302 (Pos (Succ (Succ vyv564000))) (primEvenNat vyv564000)",fontsize=16,color="magenta"];10133 -> 10258[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10259[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10260[label="",style="dashed", color="magenta", weight=3]; 10133 -> 10261[label="",style="dashed", color="magenta", weight=3]; 10134[label="pr2F0G1 vyv581 vyv302 (Pos (Succ Zero)) False",fontsize=16,color="black",shape="box"];10134 -> 10141[label="",style="solid", color="black", weight=3]; 10135 -> 10059[label="",style="dashed", color="red", weight=0]; 10135[label="pr2F0G vyv581 (vyv302 * vyv302) (Pos Zero `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10135 -> 10142[label="",style="dashed", color="magenta", weight=3]; 10135 -> 10143[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10509[label="",style="dashed", color="red", weight=0]; 10136[label="pr2F0G1 vyv581 vyv302 (Neg (Succ (Succ vyv564000))) (primEvenNat vyv564000)",fontsize=16,color="magenta"];10136 -> 10510[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10511[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10512[label="",style="dashed", color="magenta", weight=3]; 10136 -> 10513[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10289[label="",style="dashed", color="red", weight=0]; 10137[label="pr2F0G1 vyv581 vyv302 (Neg (Succ Zero)) False",fontsize=16,color="magenta"];10137 -> 10290[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10291[label="",style="dashed", color="magenta", weight=3]; 10137 -> 10292[label="",style="dashed", color="magenta", weight=3]; 10138 -> 10059[label="",style="dashed", color="red", weight=0]; 10138[label="pr2F0G vyv581 (vyv302 * vyv302) (Neg Zero `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10138 -> 10147[label="",style="dashed", color="magenta", weight=3]; 10138 -> 10148[label="",style="dashed", color="magenta", weight=3]; 10258[label="vyv564000",fontsize=16,color="green",shape="box"];10259[label="vyv581",fontsize=16,color="green",shape="box"];10260[label="Succ vyv564000",fontsize=16,color="green",shape="box"];10261[label="vyv302",fontsize=16,color="green",shape="box"];10257[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat vyv588)",fontsize=16,color="burlywood",shape="triangle"];11674[label="vyv588/Succ vyv5880",fontsize=10,color="white",style="solid",shape="box"];10257 -> 11674[label="",style="solid", color="burlywood", weight=9]; 11674 -> 10270[label="",style="solid", color="burlywood", weight=3]; 11675[label="vyv588/Zero",fontsize=10,color="white",style="solid",shape="box"];10257 -> 11675[label="",style="solid", color="burlywood", weight=9]; 11675 -> 10271[label="",style="solid", color="burlywood", weight=3]; 10141[label="pr2F0G0 vyv581 vyv302 (Pos (Succ Zero)) otherwise",fontsize=16,color="black",shape="box"];10141 -> 10152[label="",style="solid", color="black", weight=3]; 10142[label="vyv302 * vyv302",fontsize=16,color="blue",shape="box"];11676[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11676[label="",style="solid", color="blue", weight=9]; 11676 -> 10153[label="",style="solid", color="blue", weight=3]; 11677[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11677[label="",style="solid", color="blue", weight=9]; 11677 -> 10154[label="",style="solid", color="blue", weight=3]; 11678[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11678[label="",style="solid", color="blue", weight=9]; 11678 -> 10155[label="",style="solid", color="blue", weight=3]; 11679[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11679[label="",style="solid", color="blue", weight=9]; 11679 -> 10156[label="",style="solid", color="blue", weight=3]; 11680[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10142 -> 11680[label="",style="solid", color="blue", weight=9]; 11680 -> 10157[label="",style="solid", color="blue", weight=3]; 10143[label="Pos Zero `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10143 -> 10158[label="",style="solid", color="black", weight=3]; 10510[label="vyv581",fontsize=16,color="green",shape="box"];10511[label="vyv302",fontsize=16,color="green",shape="box"];10512[label="Succ vyv564000",fontsize=16,color="green",shape="box"];10513[label="vyv564000",fontsize=16,color="green",shape="box"];10509[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat vyv611)",fontsize=16,color="burlywood",shape="triangle"];11681[label="vyv611/Succ vyv6110",fontsize=10,color="white",style="solid",shape="box"];10509 -> 11681[label="",style="solid", color="burlywood", weight=9]; 11681 -> 10530[label="",style="solid", color="burlywood", weight=3]; 11682[label="vyv611/Zero",fontsize=10,color="white",style="solid",shape="box"];10509 -> 11682[label="",style="solid", color="burlywood", weight=9]; 11682 -> 10531[label="",style="solid", color="burlywood", weight=3]; 10290[label="vyv302",fontsize=16,color="green",shape="box"];10291[label="Zero",fontsize=16,color="green",shape="box"];10292[label="vyv581",fontsize=16,color="green",shape="box"];10289[label="pr2F0G1 vyv597 vyv598 (Neg (Succ vyv599)) False",fontsize=16,color="black",shape="triangle"];10289 -> 10299[label="",style="solid", color="black", weight=3]; 10147[label="vyv302 * vyv302",fontsize=16,color="blue",shape="box"];11683[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11683[label="",style="solid", color="blue", weight=9]; 11683 -> 10163[label="",style="solid", color="blue", weight=3]; 11684[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11684[label="",style="solid", color="blue", weight=9]; 11684 -> 10164[label="",style="solid", color="blue", weight=3]; 11685[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11685[label="",style="solid", color="blue", weight=9]; 11685 -> 10165[label="",style="solid", color="blue", weight=3]; 11686[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11686[label="",style="solid", color="blue", weight=9]; 11686 -> 10166[label="",style="solid", color="blue", weight=3]; 11687[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10147 -> 11687[label="",style="solid", color="blue", weight=9]; 11687 -> 10167[label="",style="solid", color="blue", weight=3]; 10148[label="Neg Zero `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10148 -> 10168[label="",style="solid", color="black", weight=3]; 10270[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ vyv5880))",fontsize=16,color="burlywood",shape="box"];11688[label="vyv5880/Succ vyv58800",fontsize=10,color="white",style="solid",shape="box"];10270 -> 11688[label="",style="solid", color="burlywood", weight=9]; 11688 -> 10277[label="",style="solid", color="burlywood", weight=3]; 11689[label="vyv5880/Zero",fontsize=10,color="white",style="solid",shape="box"];10270 -> 11689[label="",style="solid", color="burlywood", weight=9]; 11689 -> 10278[label="",style="solid", color="burlywood", weight=3]; 10271[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10271 -> 10279[label="",style="solid", color="black", weight=3]; 10152[label="pr2F0G0 vyv581 vyv302 (Pos (Succ Zero)) True",fontsize=16,color="black",shape="box"];10152 -> 10172[label="",style="solid", color="black", weight=3]; 10153[label="vyv302 * vyv302",fontsize=16,color="burlywood",shape="triangle"];11690[label="vyv302/vyv3020 :% vyv3021",fontsize=10,color="white",style="solid",shape="box"];10153 -> 11690[label="",style="solid", color="burlywood", weight=9]; 11690 -> 10173[label="",style="solid", color="burlywood", weight=3]; 10154[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10154 -> 10174[label="",style="solid", color="black", weight=3]; 10155[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10155 -> 10175[label="",style="solid", color="black", weight=3]; 10156[label="vyv302 * vyv302",fontsize=16,color="burlywood",shape="triangle"];11691[label="vyv302/Integer vyv3020",fontsize=10,color="white",style="solid",shape="box"];10156 -> 11691[label="",style="solid", color="burlywood", weight=9]; 11691 -> 10176[label="",style="solid", color="burlywood", weight=3]; 10157[label="vyv302 * vyv302",fontsize=16,color="black",shape="triangle"];10157 -> 10177[label="",style="solid", color="black", weight=3]; 10158 -> 10895[label="",style="dashed", color="red", weight=0]; 10158[label="primQuotInt (Pos Zero) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10158 -> 10896[label="",style="dashed", color="magenta", weight=3]; 10158 -> 10897[label="",style="dashed", color="magenta", weight=3]; 10530[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ vyv6110))",fontsize=16,color="burlywood",shape="box"];11692[label="vyv6110/Succ vyv61100",fontsize=10,color="white",style="solid",shape="box"];10530 -> 11692[label="",style="solid", color="burlywood", weight=9]; 11692 -> 10562[label="",style="solid", color="burlywood", weight=3]; 11693[label="vyv6110/Zero",fontsize=10,color="white",style="solid",shape="box"];10530 -> 11693[label="",style="solid", color="burlywood", weight=9]; 11693 -> 10563[label="",style="solid", color="burlywood", weight=3]; 10531[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat Zero)",fontsize=16,color="black",shape="box"];10531 -> 10564[label="",style="solid", color="black", weight=3]; 10299[label="pr2F0G0 vyv597 vyv598 (Neg (Succ vyv599)) otherwise",fontsize=16,color="black",shape="box"];10299 -> 10316[label="",style="solid", color="black", weight=3]; 10163 -> 10153[label="",style="dashed", color="red", weight=0]; 10163[label="vyv302 * vyv302",fontsize=16,color="magenta"];10164 -> 10154[label="",style="dashed", color="red", weight=0]; 10164[label="vyv302 * vyv302",fontsize=16,color="magenta"];10165 -> 10155[label="",style="dashed", color="red", weight=0]; 10165[label="vyv302 * vyv302",fontsize=16,color="magenta"];10166 -> 10156[label="",style="dashed", color="red", weight=0]; 10166[label="vyv302 * vyv302",fontsize=16,color="magenta"];10167 -> 10157[label="",style="dashed", color="red", weight=0]; 10167[label="vyv302 * vyv302",fontsize=16,color="magenta"];10168[label="primQuotInt (Neg Zero) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="black",shape="box"];10168 -> 10183[label="",style="solid", color="black", weight=3]; 10277[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ (Succ vyv58800)))",fontsize=16,color="black",shape="box"];10277 -> 10300[label="",style="solid", color="black", weight=3]; 10278[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10278 -> 10301[label="",style="solid", color="black", weight=3]; 10279[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) True",fontsize=16,color="black",shape="box"];10279 -> 10302[label="",style="solid", color="black", weight=3]; 10172 -> 10369[label="",style="dashed", color="red", weight=0]; 10172[label="pr2F vyv302 (Pos (Succ Zero) - fromInt (Pos (Succ Zero))) (vyv302 * vyv581)",fontsize=16,color="magenta"];10172 -> 10370[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10371[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10372[label="",style="dashed", color="magenta", weight=3]; 10172 -> 10373[label="",style="dashed", color="magenta", weight=3]; 10173[label="vyv3020 :% vyv3021 * (vyv3020 :% vyv3021)",fontsize=16,color="black",shape="box"];10173 -> 10191[label="",style="solid", color="black", weight=3]; 10174[label="primMulDouble vyv302 vyv302",fontsize=16,color="burlywood",shape="box"];11694[label="vyv302/Double vyv3020 vyv3021",fontsize=10,color="white",style="solid",shape="box"];10174 -> 11694[label="",style="solid", color="burlywood", weight=9]; 11694 -> 10192[label="",style="solid", color="burlywood", weight=3]; 10175[label="primMulInt vyv302 vyv302",fontsize=16,color="burlywood",shape="triangle"];11695[label="vyv302/Pos vyv3020",fontsize=10,color="white",style="solid",shape="box"];10175 -> 11695[label="",style="solid", color="burlywood", weight=9]; 11695 -> 10193[label="",style="solid", color="burlywood", weight=3]; 11696[label="vyv302/Neg vyv3020",fontsize=10,color="white",style="solid",shape="box"];10175 -> 11696[label="",style="solid", color="burlywood", weight=9]; 11696 -> 10194[label="",style="solid", color="burlywood", weight=3]; 10176[label="Integer vyv3020 * Integer vyv3020",fontsize=16,color="black",shape="box"];10176 -> 10195[label="",style="solid", color="black", weight=3]; 10177[label="primMulFloat vyv302 vyv302",fontsize=16,color="burlywood",shape="box"];11697[label="vyv302/Float vyv3020 vyv3021",fontsize=10,color="white",style="solid",shape="box"];10177 -> 11697[label="",style="solid", color="burlywood", weight=9]; 11697 -> 10196[label="",style="solid", color="burlywood", weight=3]; 10896[label="Zero",fontsize=16,color="green",shape="box"];10897[label="fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="triangle"];10897 -> 10917[label="",style="solid", color="black", weight=3]; 10895[label="primQuotInt (Pos vyv6330) vyv646",fontsize=16,color="burlywood",shape="triangle"];11698[label="vyv646/Pos vyv6460",fontsize=10,color="white",style="solid",shape="box"];10895 -> 11698[label="",style="solid", color="burlywood", weight=9]; 11698 -> 10918[label="",style="solid", color="burlywood", weight=3]; 11699[label="vyv646/Neg vyv6460",fontsize=10,color="white",style="solid",shape="box"];10895 -> 11699[label="",style="solid", color="burlywood", weight=9]; 11699 -> 10919[label="",style="solid", color="burlywood", weight=3]; 10562[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ (Succ vyv61100)))",fontsize=16,color="black",shape="box"];10562 -> 10594[label="",style="solid", color="black", weight=3]; 10563[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat (Succ Zero))",fontsize=16,color="black",shape="box"];10563 -> 10595[label="",style="solid", color="black", weight=3]; 10564[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) True",fontsize=16,color="black",shape="box"];10564 -> 10596[label="",style="solid", color="black", weight=3]; 10316[label="pr2F0G0 vyv597 vyv598 (Neg (Succ vyv599)) True",fontsize=16,color="black",shape="box"];10316 -> 10333[label="",style="solid", color="black", weight=3]; 10183[label="primQuotInt (Neg Zero) (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10183 -> 10205[label="",style="solid", color="black", weight=3]; 10300 -> 10257[label="",style="dashed", color="red", weight=0]; 10300[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) (primEvenNat vyv58800)",fontsize=16,color="magenta"];10300 -> 10317[label="",style="dashed", color="magenta", weight=3]; 10301[label="pr2F0G1 vyv585 vyv586 (Pos (Succ vyv587)) False",fontsize=16,color="black",shape="box"];10301 -> 10318[label="",style="solid", color="black", weight=3]; 10302 -> 10059[label="",style="dashed", color="red", weight=0]; 10302[label="pr2F0G vyv585 (vyv586 * vyv586) (Pos (Succ vyv587) `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10302 -> 10319[label="",style="dashed", color="magenta", weight=3]; 10302 -> 10320[label="",style="dashed", color="magenta", weight=3]; 10302 -> 10321[label="",style="dashed", color="magenta", weight=3]; 10370 -> 29[label="",style="dashed", color="red", weight=0]; 10370[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10371[label="vyv581",fontsize=16,color="green",shape="box"];10372[label="Zero",fontsize=16,color="green",shape="box"];10373[label="vyv302",fontsize=16,color="green",shape="box"];10369[label="pr2F vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="triangle"];10369 -> 10379[label="",style="solid", color="black", weight=3]; 10191[label="reduce (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="black",shape="box"];10191 -> 10217[label="",style="solid", color="black", weight=3]; 10192[label="primMulDouble (Double vyv3020 vyv3021) (Double vyv3020 vyv3021)",fontsize=16,color="black",shape="box"];10192 -> 10218[label="",style="solid", color="black", weight=3]; 10193[label="primMulInt (Pos vyv3020) (Pos vyv3020)",fontsize=16,color="black",shape="box"];10193 -> 10219[label="",style="solid", color="black", weight=3]; 10194[label="primMulInt (Neg vyv3020) (Neg vyv3020)",fontsize=16,color="black",shape="box"];10194 -> 10220[label="",style="solid", color="black", weight=3]; 10195[label="Integer (primMulInt vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10195 -> 10221[label="",style="dashed", color="green", weight=3]; 10196[label="primMulFloat (Float vyv3020 vyv3021) (Float vyv3020 vyv3021)",fontsize=16,color="black",shape="box"];10196 -> 10222[label="",style="solid", color="black", weight=3]; 10917[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];10918[label="primQuotInt (Pos vyv6330) (Pos vyv6460)",fontsize=16,color="burlywood",shape="box"];11700[label="vyv6460/Succ vyv64600",fontsize=10,color="white",style="solid",shape="box"];10918 -> 11700[label="",style="solid", color="burlywood", weight=9]; 11700 -> 10931[label="",style="solid", color="burlywood", weight=3]; 11701[label="vyv6460/Zero",fontsize=10,color="white",style="solid",shape="box"];10918 -> 11701[label="",style="solid", color="burlywood", weight=9]; 11701 -> 10932[label="",style="solid", color="burlywood", weight=3]; 10919[label="primQuotInt (Pos vyv6330) (Neg vyv6460)",fontsize=16,color="burlywood",shape="box"];11702[label="vyv6460/Succ vyv64600",fontsize=10,color="white",style="solid",shape="box"];10919 -> 11702[label="",style="solid", color="burlywood", weight=9]; 11702 -> 10933[label="",style="solid", color="burlywood", weight=3]; 11703[label="vyv6460/Zero",fontsize=10,color="white",style="solid",shape="box"];10919 -> 11703[label="",style="solid", color="burlywood", weight=9]; 11703 -> 10934[label="",style="solid", color="burlywood", weight=3]; 10594 -> 10509[label="",style="dashed", color="red", weight=0]; 10594[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) (primEvenNat vyv61100)",fontsize=16,color="magenta"];10594 -> 10633[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10289[label="",style="dashed", color="red", weight=0]; 10595[label="pr2F0G1 vyv608 vyv609 (Neg (Succ vyv610)) False",fontsize=16,color="magenta"];10595 -> 10634[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10635[label="",style="dashed", color="magenta", weight=3]; 10595 -> 10636[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10059[label="",style="dashed", color="red", weight=0]; 10596[label="pr2F0G vyv608 (vyv609 * vyv609) (Neg (Succ vyv610) `quot` fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10596 -> 10637[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10638[label="",style="dashed", color="magenta", weight=3]; 10596 -> 10639[label="",style="dashed", color="magenta", weight=3]; 10333 -> 10343[label="",style="dashed", color="red", weight=0]; 10333[label="pr2F vyv598 (Neg (Succ vyv599) - fromInt (Pos (Succ Zero))) (vyv598 * vyv597)",fontsize=16,color="magenta"];10333 -> 10344[label="",style="dashed", color="magenta", weight=3]; 10205[label="Neg (primDivNatS Zero (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];10205 -> 10235[label="",style="dashed", color="green", weight=3]; 10317[label="vyv58800",fontsize=16,color="green",shape="box"];10318[label="pr2F0G0 vyv585 vyv586 (Pos (Succ vyv587)) otherwise",fontsize=16,color="black",shape="box"];10318 -> 10334[label="",style="solid", color="black", weight=3]; 10319[label="vyv586 * vyv586",fontsize=16,color="blue",shape="box"];11704[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11704[label="",style="solid", color="blue", weight=9]; 11704 -> 10335[label="",style="solid", color="blue", weight=3]; 11705[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11705[label="",style="solid", color="blue", weight=9]; 11705 -> 10336[label="",style="solid", color="blue", weight=3]; 11706[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11706[label="",style="solid", color="blue", weight=9]; 11706 -> 10337[label="",style="solid", color="blue", weight=3]; 11707[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11707[label="",style="solid", color="blue", weight=9]; 11707 -> 10338[label="",style="solid", color="blue", weight=3]; 11708[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10319 -> 11708[label="",style="solid", color="blue", weight=9]; 11708 -> 10339[label="",style="solid", color="blue", weight=3]; 10320[label="vyv585",fontsize=16,color="green",shape="box"];10321[label="Pos (Succ vyv587) `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10321 -> 10340[label="",style="solid", color="black", weight=3]; 10379[label="pr2F4 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10379 -> 10383[label="",style="solid", color="black", weight=3]; 10217[label="reduce2 (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="black",shape="box"];10217 -> 10242[label="",style="solid", color="black", weight=3]; 10218[label="Double (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="green",shape="box"];10218 -> 10243[label="",style="dashed", color="green", weight=3]; 10218 -> 10244[label="",style="dashed", color="green", weight=3]; 10219[label="Pos (primMulNat vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10219 -> 10245[label="",style="dashed", color="green", weight=3]; 10220[label="Pos (primMulNat vyv3020 vyv3020)",fontsize=16,color="green",shape="box"];10220 -> 10246[label="",style="dashed", color="green", weight=3]; 10221 -> 10175[label="",style="dashed", color="red", weight=0]; 10221[label="primMulInt vyv3020 vyv3020",fontsize=16,color="magenta"];10221 -> 10247[label="",style="dashed", color="magenta", weight=3]; 10222[label="Float (vyv3020 * vyv3020) (vyv3021 * vyv3021)",fontsize=16,color="green",shape="box"];10222 -> 10248[label="",style="dashed", color="green", weight=3]; 10222 -> 10249[label="",style="dashed", color="green", weight=3]; 10931[label="primQuotInt (Pos vyv6330) (Pos (Succ vyv64600))",fontsize=16,color="black",shape="box"];10931 -> 10943[label="",style="solid", color="black", weight=3]; 10932[label="primQuotInt (Pos vyv6330) (Pos Zero)",fontsize=16,color="black",shape="box"];10932 -> 10944[label="",style="solid", color="black", weight=3]; 10933[label="primQuotInt (Pos vyv6330) (Neg (Succ vyv64600))",fontsize=16,color="black",shape="box"];10933 -> 10945[label="",style="solid", color="black", weight=3]; 10934[label="primQuotInt (Pos vyv6330) (Neg Zero)",fontsize=16,color="black",shape="box"];10934 -> 10946[label="",style="solid", color="black", weight=3]; 10633[label="vyv61100",fontsize=16,color="green",shape="box"];10634[label="vyv609",fontsize=16,color="green",shape="box"];10635[label="vyv610",fontsize=16,color="green",shape="box"];10636[label="vyv608",fontsize=16,color="green",shape="box"];10637[label="vyv609 * vyv609",fontsize=16,color="blue",shape="box"];11709[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11709[label="",style="solid", color="blue", weight=9]; 11709 -> 10664[label="",style="solid", color="blue", weight=3]; 11710[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11710[label="",style="solid", color="blue", weight=9]; 11710 -> 10665[label="",style="solid", color="blue", weight=3]; 11711[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11711[label="",style="solid", color="blue", weight=9]; 11711 -> 10666[label="",style="solid", color="blue", weight=3]; 11712[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11712[label="",style="solid", color="blue", weight=9]; 11712 -> 10667[label="",style="solid", color="blue", weight=3]; 11713[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10637 -> 11713[label="",style="solid", color="blue", weight=9]; 11713 -> 10668[label="",style="solid", color="blue", weight=3]; 10638[label="vyv608",fontsize=16,color="green",shape="box"];10639[label="Neg (Succ vyv610) `quot` fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10639 -> 10669[label="",style="solid", color="black", weight=3]; 10344 -> 29[label="",style="dashed", color="red", weight=0]; 10344[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10343[label="pr2F vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="triangle"];10343 -> 10345[label="",style="solid", color="black", weight=3]; 10235 -> 10223[label="",style="dashed", color="red", weight=0]; 10235[label="primDivNatS Zero (Succ (Succ Zero))",fontsize=16,color="magenta"];10334[label="pr2F0G0 vyv585 vyv586 (Pos (Succ vyv587)) True",fontsize=16,color="black",shape="box"];10334 -> 10346[label="",style="solid", color="black", weight=3]; 10335 -> 10153[label="",style="dashed", color="red", weight=0]; 10335[label="vyv586 * vyv586",fontsize=16,color="magenta"];10335 -> 10347[label="",style="dashed", color="magenta", weight=3]; 10336 -> 10154[label="",style="dashed", color="red", weight=0]; 10336[label="vyv586 * vyv586",fontsize=16,color="magenta"];10336 -> 10348[label="",style="dashed", color="magenta", weight=3]; 10337 -> 10155[label="",style="dashed", color="red", weight=0]; 10337[label="vyv586 * vyv586",fontsize=16,color="magenta"];10337 -> 10349[label="",style="dashed", color="magenta", weight=3]; 10338 -> 10156[label="",style="dashed", color="red", weight=0]; 10338[label="vyv586 * vyv586",fontsize=16,color="magenta"];10338 -> 10350[label="",style="dashed", color="magenta", weight=3]; 10339 -> 10157[label="",style="dashed", color="red", weight=0]; 10339[label="vyv586 * vyv586",fontsize=16,color="magenta"];10339 -> 10351[label="",style="dashed", color="magenta", weight=3]; 10340 -> 10895[label="",style="dashed", color="red", weight=0]; 10340[label="primQuotInt (Pos (Succ vyv587)) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="magenta"];10340 -> 10900[label="",style="dashed", color="magenta", weight=3]; 10340 -> 10901[label="",style="dashed", color="magenta", weight=3]; 10383 -> 10403[label="",style="dashed", color="red", weight=0]; 10383[label="pr2F3 (Pos (Succ vyv587) - vyv603 == fromInt (Pos Zero)) vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="magenta"];10383 -> 10404[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10674[label="",style="dashed", color="red", weight=0]; 10242[label="reduce2Reduce1 (vyv3020 * vyv3020) (vyv3021 * vyv3021) (vyv3020 * vyv3020) (vyv3021 * vyv3021) (vyv3021 * vyv3021 == fromInt (Pos Zero))",fontsize=16,color="magenta"];10242 -> 10675[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10676[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10677[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10678[label="",style="dashed", color="magenta", weight=3]; 10242 -> 10679[label="",style="dashed", color="magenta", weight=3]; 10243 -> 10155[label="",style="dashed", color="red", weight=0]; 10243[label="vyv3020 * vyv3020",fontsize=16,color="magenta"];10243 -> 10280[label="",style="dashed", color="magenta", weight=3]; 10244 -> 10155[label="",style="dashed", color="red", weight=0]; 10244[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10244 -> 10281[label="",style="dashed", color="magenta", weight=3]; 10245[label="primMulNat vyv3020 vyv3020",fontsize=16,color="burlywood",shape="triangle"];11714[label="vyv3020/Succ vyv30200",fontsize=10,color="white",style="solid",shape="box"];10245 -> 11714[label="",style="solid", color="burlywood", weight=9]; 11714 -> 10282[label="",style="solid", color="burlywood", weight=3]; 11715[label="vyv3020/Zero",fontsize=10,color="white",style="solid",shape="box"];10245 -> 11715[label="",style="solid", color="burlywood", weight=9]; 11715 -> 10283[label="",style="solid", color="burlywood", weight=3]; 10246 -> 10245[label="",style="dashed", color="red", weight=0]; 10246[label="primMulNat vyv3020 vyv3020",fontsize=16,color="magenta"];10246 -> 10284[label="",style="dashed", color="magenta", weight=3]; 10247[label="vyv3020",fontsize=16,color="green",shape="box"];10248 -> 10155[label="",style="dashed", color="red", weight=0]; 10248[label="vyv3020 * vyv3020",fontsize=16,color="magenta"];10248 -> 10285[label="",style="dashed", color="magenta", weight=3]; 10249 -> 10155[label="",style="dashed", color="red", weight=0]; 10249[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10249 -> 10286[label="",style="dashed", color="magenta", weight=3]; 10943[label="Pos (primDivNatS vyv6330 (Succ vyv64600))",fontsize=16,color="green",shape="box"];10943 -> 10949[label="",style="dashed", color="green", weight=3]; 10944 -> 65[label="",style="dashed", color="red", weight=0]; 10944[label="error []",fontsize=16,color="magenta"];10945[label="Neg (primDivNatS vyv6330 (Succ vyv64600))",fontsize=16,color="green",shape="box"];10945 -> 10950[label="",style="dashed", color="green", weight=3]; 10946 -> 65[label="",style="dashed", color="red", weight=0]; 10946[label="error []",fontsize=16,color="magenta"];10664 -> 10153[label="",style="dashed", color="red", weight=0]; 10664[label="vyv609 * vyv609",fontsize=16,color="magenta"];10664 -> 10690[label="",style="dashed", color="magenta", weight=3]; 10665 -> 10154[label="",style="dashed", color="red", weight=0]; 10665[label="vyv609 * vyv609",fontsize=16,color="magenta"];10665 -> 10691[label="",style="dashed", color="magenta", weight=3]; 10666 -> 10155[label="",style="dashed", color="red", weight=0]; 10666[label="vyv609 * vyv609",fontsize=16,color="magenta"];10666 -> 10692[label="",style="dashed", color="magenta", weight=3]; 10667 -> 10156[label="",style="dashed", color="red", weight=0]; 10667[label="vyv609 * vyv609",fontsize=16,color="magenta"];10667 -> 10693[label="",style="dashed", color="magenta", weight=3]; 10668 -> 10157[label="",style="dashed", color="red", weight=0]; 10668[label="vyv609 * vyv609",fontsize=16,color="magenta"];10668 -> 10694[label="",style="dashed", color="magenta", weight=3]; 10669[label="primQuotInt (Neg (Succ vyv610)) (fromInt (Pos (Succ (Succ Zero))))",fontsize=16,color="black",shape="box"];10669 -> 10695[label="",style="solid", color="black", weight=3]; 10345[label="pr2F4 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10345 -> 10368[label="",style="solid", color="black", weight=3]; 10223[label="primDivNatS Zero (Succ (Succ Zero))",fontsize=16,color="black",shape="triangle"];10223 -> 10250[label="",style="solid", color="black", weight=3]; 10346 -> 10369[label="",style="dashed", color="red", weight=0]; 10346[label="pr2F vyv586 (Pos (Succ vyv587) - fromInt (Pos (Succ Zero))) (vyv586 * vyv585)",fontsize=16,color="magenta"];10346 -> 10378[label="",style="dashed", color="magenta", weight=3]; 10347[label="vyv586",fontsize=16,color="green",shape="box"];10348[label="vyv586",fontsize=16,color="green",shape="box"];10349[label="vyv586",fontsize=16,color="green",shape="box"];10350[label="vyv586",fontsize=16,color="green",shape="box"];10351[label="vyv586",fontsize=16,color="green",shape="box"];10900[label="Succ vyv587",fontsize=16,color="green",shape="box"];10901 -> 10897[label="",style="dashed", color="red", weight=0]; 10901[label="fromInt (Pos (Succ (Succ Zero)))",fontsize=16,color="magenta"];10404 -> 10331[label="",style="dashed", color="red", weight=0]; 10404[label="Pos (Succ vyv587) - vyv603 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10404 -> 10405[label="",style="dashed", color="magenta", weight=3]; 10403[label="pr2F3 vyv605 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="burlywood",shape="triangle"];11716[label="vyv605/False",fontsize=10,color="white",style="solid",shape="box"];10403 -> 11716[label="",style="solid", color="burlywood", weight=9]; 11716 -> 10406[label="",style="solid", color="burlywood", weight=3]; 11717[label="vyv605/True",fontsize=10,color="white",style="solid",shape="box"];10403 -> 11717[label="",style="solid", color="burlywood", weight=9]; 11717 -> 10407[label="",style="solid", color="burlywood", weight=3]; 10675[label="vyv3020",fontsize=16,color="green",shape="box"];10676[label="vyv3021",fontsize=16,color="green",shape="box"];10677[label="vyv3021",fontsize=16,color="green",shape="box"];10678[label="vyv3020",fontsize=16,color="green",shape="box"];10679[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];11718[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];10679 -> 11718[label="",style="solid", color="blue", weight=9]; 11718 -> 10696[label="",style="solid", color="blue", weight=3]; 11719[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];10679 -> 11719[label="",style="solid", color="blue", weight=9]; 11719 -> 10697[label="",style="solid", color="blue", weight=3]; 10674[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) vyv628",fontsize=16,color="burlywood",shape="triangle"];11720[label="vyv628/False",fontsize=10,color="white",style="solid",shape="box"];10674 -> 11720[label="",style="solid", color="burlywood", weight=9]; 11720 -> 10698[label="",style="solid", color="burlywood", weight=3]; 11721[label="vyv628/True",fontsize=10,color="white",style="solid",shape="box"];10674 -> 11721[label="",style="solid", color="burlywood", weight=9]; 11721 -> 10699[label="",style="solid", color="burlywood", weight=3]; 10280[label="vyv3020",fontsize=16,color="green",shape="box"];10281[label="vyv3021",fontsize=16,color="green",shape="box"];10282[label="primMulNat (Succ vyv30200) (Succ vyv30200)",fontsize=16,color="black",shape="box"];10282 -> 10311[label="",style="solid", color="black", weight=3]; 10283[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];10283 -> 10312[label="",style="solid", color="black", weight=3]; 10284[label="vyv3020",fontsize=16,color="green",shape="box"];10285[label="vyv3020",fontsize=16,color="green",shape="box"];10286[label="vyv3021",fontsize=16,color="green",shape="box"];10949[label="primDivNatS vyv6330 (Succ vyv64600)",fontsize=16,color="burlywood",shape="triangle"];11722[label="vyv6330/Succ vyv63300",fontsize=10,color="white",style="solid",shape="box"];10949 -> 11722[label="",style="solid", color="burlywood", weight=9]; 11722 -> 10968[label="",style="solid", color="burlywood", weight=3]; 11723[label="vyv6330/Zero",fontsize=10,color="white",style="solid",shape="box"];10949 -> 11723[label="",style="solid", color="burlywood", weight=9]; 11723 -> 10969[label="",style="solid", color="burlywood", weight=3]; 10950 -> 10949[label="",style="dashed", color="red", weight=0]; 10950[label="primDivNatS vyv6330 (Succ vyv64600)",fontsize=16,color="magenta"];10950 -> 10970[label="",style="dashed", color="magenta", weight=3]; 10690[label="vyv609",fontsize=16,color="green",shape="box"];10691[label="vyv609",fontsize=16,color="green",shape="box"];10692[label="vyv609",fontsize=16,color="green",shape="box"];10693[label="vyv609",fontsize=16,color="green",shape="box"];10694[label="vyv609",fontsize=16,color="green",shape="box"];10695[label="primQuotInt (Neg (Succ vyv610)) (Pos (Succ (Succ Zero)))",fontsize=16,color="black",shape="box"];10695 -> 10722[label="",style="solid", color="black", weight=3]; 10368 -> 10381[label="",style="dashed", color="red", weight=0]; 10368[label="pr2F3 (Neg (Succ vyv599) - vyv602 == fromInt (Pos Zero)) vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="magenta"];10368 -> 10382[label="",style="dashed", color="magenta", weight=3]; 10250[label="Zero",fontsize=16,color="green",shape="box"];10378 -> 29[label="",style="dashed", color="red", weight=0]; 10378[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];10405[label="Pos (Succ vyv587) - vyv603",fontsize=16,color="black",shape="triangle"];10405 -> 10431[label="",style="solid", color="black", weight=3]; 10331[label="vyv600 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10331 -> 10365[label="",style="solid", color="black", weight=3]; 10406[label="pr2F3 False vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10406 -> 10432[label="",style="solid", color="black", weight=3]; 10407[label="pr2F3 True vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="black",shape="box"];10407 -> 10433[label="",style="solid", color="black", weight=3]; 10696 -> 10331[label="",style="dashed", color="red", weight=0]; 10696[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10696 -> 10723[label="",style="dashed", color="magenta", weight=3]; 10697 -> 10724[label="",style="dashed", color="red", weight=0]; 10697[label="vyv3021 * vyv3021 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10697 -> 10725[label="",style="dashed", color="magenta", weight=3]; 10698[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) False",fontsize=16,color="black",shape="box"];10698 -> 10727[label="",style="solid", color="black", weight=3]; 10699[label="reduce2Reduce1 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) True",fontsize=16,color="black",shape="box"];10699 -> 10728[label="",style="solid", color="black", weight=3]; 10311 -> 94[label="",style="dashed", color="red", weight=0]; 10311[label="primPlusNat (primMulNat vyv30200 (Succ vyv30200)) (Succ vyv30200)",fontsize=16,color="magenta"];10311 -> 10355[label="",style="dashed", color="magenta", weight=3]; 10311 -> 10356[label="",style="dashed", color="magenta", weight=3]; 10312[label="Zero",fontsize=16,color="green",shape="box"];10968[label="primDivNatS (Succ vyv63300) (Succ vyv64600)",fontsize=16,color="black",shape="box"];10968 -> 10988[label="",style="solid", color="black", weight=3]; 10969[label="primDivNatS Zero (Succ vyv64600)",fontsize=16,color="black",shape="box"];10969 -> 10989[label="",style="solid", color="black", weight=3]; 10970[label="vyv64600",fontsize=16,color="green",shape="box"];10722[label="Neg (primDivNatS (Succ vyv610) (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];10722 -> 10729[label="",style="dashed", color="green", weight=3]; 10382 -> 10331[label="",style="dashed", color="red", weight=0]; 10382[label="Neg (Succ vyv599) - vyv602 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10382 -> 10385[label="",style="dashed", color="magenta", weight=3]; 10381[label="pr2F3 vyv604 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="burlywood",shape="triangle"];11724[label="vyv604/False",fontsize=10,color="white",style="solid",shape="box"];10381 -> 11724[label="",style="solid", color="burlywood", weight=9]; 11724 -> 10386[label="",style="solid", color="burlywood", weight=3]; 11725[label="vyv604/True",fontsize=10,color="white",style="solid",shape="box"];10381 -> 11725[label="",style="solid", color="burlywood", weight=9]; 11725 -> 10387[label="",style="solid", color="burlywood", weight=3]; 10431[label="primMinusInt (Pos (Succ vyv587)) vyv603",fontsize=16,color="burlywood",shape="box"];11726[label="vyv603/Pos vyv6030",fontsize=10,color="white",style="solid",shape="box"];10431 -> 11726[label="",style="solid", color="burlywood", weight=9]; 11726 -> 10443[label="",style="solid", color="burlywood", weight=3]; 11727[label="vyv603/Neg vyv6030",fontsize=10,color="white",style="solid",shape="box"];10431 -> 11727[label="",style="solid", color="burlywood", weight=9]; 11727 -> 10444[label="",style="solid", color="burlywood", weight=3]; 10365[label="primEqInt vyv600 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11728[label="vyv600/Pos vyv6000",fontsize=10,color="white",style="solid",shape="box"];10365 -> 11728[label="",style="solid", color="burlywood", weight=9]; 11728 -> 10400[label="",style="solid", color="burlywood", weight=3]; 11729[label="vyv600/Neg vyv6000",fontsize=10,color="white",style="solid",shape="box"];10365 -> 11729[label="",style="solid", color="burlywood", weight=9]; 11729 -> 10401[label="",style="solid", color="burlywood", weight=3]; 10432 -> 10438[label="",style="dashed", color="red", weight=0]; 10432[label="pr2F0 vyv586 (Pos (Succ vyv587) - vyv603) (vyv586 * vyv585)",fontsize=16,color="magenta"];10432 -> 10439[label="",style="dashed", color="magenta", weight=3]; 10432 -> 10440[label="",style="dashed", color="magenta", weight=3]; 10432 -> 10441[label="",style="dashed", color="magenta", weight=3]; 10433[label="vyv586 * vyv585",fontsize=16,color="blue",shape="box"];11730[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11730[label="",style="solid", color="blue", weight=9]; 11730 -> 10445[label="",style="solid", color="blue", weight=3]; 11731[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11731[label="",style="solid", color="blue", weight=9]; 11731 -> 10446[label="",style="solid", color="blue", weight=3]; 11732[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11732[label="",style="solid", color="blue", weight=9]; 11732 -> 10447[label="",style="solid", color="blue", weight=3]; 11733[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11733[label="",style="solid", color="blue", weight=9]; 11733 -> 10448[label="",style="solid", color="blue", weight=3]; 11734[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10433 -> 11734[label="",style="solid", color="blue", weight=9]; 11734 -> 10449[label="",style="solid", color="blue", weight=3]; 10723 -> 10155[label="",style="dashed", color="red", weight=0]; 10723[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10723 -> 10730[label="",style="dashed", color="magenta", weight=3]; 10725 -> 10156[label="",style="dashed", color="red", weight=0]; 10725[label="vyv3021 * vyv3021",fontsize=16,color="magenta"];10725 -> 10731[label="",style="dashed", color="magenta", weight=3]; 10724[label="vyv629 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];11735[label="vyv629/Integer vyv6290",fontsize=10,color="white",style="solid",shape="box"];10724 -> 11735[label="",style="solid", color="burlywood", weight=9]; 11735 -> 10732[label="",style="solid", color="burlywood", weight=3]; 10727[label="reduce2Reduce0 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) otherwise",fontsize=16,color="black",shape="box"];10727 -> 10742[label="",style="solid", color="black", weight=3]; 10728 -> 65[label="",style="dashed", color="red", weight=0]; 10728[label="error []",fontsize=16,color="magenta"];10355[label="primMulNat vyv30200 (Succ vyv30200)",fontsize=16,color="burlywood",shape="box"];11736[label="vyv30200/Succ vyv302000",fontsize=10,color="white",style="solid",shape="box"];10355 -> 11736[label="",style="solid", color="burlywood", weight=9]; 11736 -> 10389[label="",style="solid", color="burlywood", weight=3]; 11737[label="vyv30200/Zero",fontsize=10,color="white",style="solid",shape="box"];10355 -> 11737[label="",style="solid", color="burlywood", weight=9]; 11737 -> 10390[label="",style="solid", color="burlywood", weight=3]; 10356[label="Succ vyv30200",fontsize=16,color="green",shape="box"];10988[label="primDivNatS0 vyv63300 vyv64600 (primGEqNatS vyv63300 vyv64600)",fontsize=16,color="burlywood",shape="box"];11738[label="vyv63300/Succ vyv633000",fontsize=10,color="white",style="solid",shape="box"];10988 -> 11738[label="",style="solid", color="burlywood", weight=9]; 11738 -> 10992[label="",style="solid", color="burlywood", weight=3]; 11739[label="vyv63300/Zero",fontsize=10,color="white",style="solid",shape="box"];10988 -> 11739[label="",style="solid", color="burlywood", weight=9]; 11739 -> 10993[label="",style="solid", color="burlywood", weight=3]; 10989[label="Zero",fontsize=16,color="green",shape="box"];10729 -> 10384[label="",style="dashed", color="red", weight=0]; 10729[label="primDivNatS (Succ vyv610) (Succ (Succ Zero))",fontsize=16,color="magenta"];10729 -> 10743[label="",style="dashed", color="magenta", weight=3]; 10385[label="Neg (Succ vyv599) - vyv602",fontsize=16,color="black",shape="triangle"];10385 -> 10409[label="",style="solid", color="black", weight=3]; 10386[label="pr2F3 False vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10386 -> 10410[label="",style="solid", color="black", weight=3]; 10387[label="pr2F3 True vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="black",shape="box"];10387 -> 10411[label="",style="solid", color="black", weight=3]; 10443[label="primMinusInt (Pos (Succ vyv587)) (Pos vyv6030)",fontsize=16,color="black",shape="box"];10443 -> 10476[label="",style="solid", color="black", weight=3]; 10444[label="primMinusInt (Pos (Succ vyv587)) (Neg vyv6030)",fontsize=16,color="black",shape="box"];10444 -> 10477[label="",style="solid", color="black", weight=3]; 10400[label="primEqInt (Pos vyv6000) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11740[label="vyv6000/Succ vyv60000",fontsize=10,color="white",style="solid",shape="box"];10400 -> 11740[label="",style="solid", color="burlywood", weight=9]; 11740 -> 10426[label="",style="solid", color="burlywood", weight=3]; 11741[label="vyv6000/Zero",fontsize=10,color="white",style="solid",shape="box"];10400 -> 11741[label="",style="solid", color="burlywood", weight=9]; 11741 -> 10427[label="",style="solid", color="burlywood", weight=3]; 10401[label="primEqInt (Neg vyv6000) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];11742[label="vyv6000/Succ vyv60000",fontsize=10,color="white",style="solid",shape="box"];10401 -> 11742[label="",style="solid", color="burlywood", weight=9]; 11742 -> 10428[label="",style="solid", color="burlywood", weight=3]; 11743[label="vyv6000/Zero",fontsize=10,color="white",style="solid",shape="box"];10401 -> 11743[label="",style="solid", color="burlywood", weight=9]; 11743 -> 10429[label="",style="solid", color="burlywood", weight=3]; 10439[label="vyv586",fontsize=16,color="green",shape="box"];10440 -> 10405[label="",style="dashed", color="red", weight=0]; 10440[label="Pos (Succ vyv587) - vyv603",fontsize=16,color="magenta"];10441[label="vyv585",fontsize=16,color="green",shape="box"];10438[label="pr2F0 vyv598 vyv606 (vyv598 * vyv597)",fontsize=16,color="black",shape="triangle"];10438 -> 10450[label="",style="solid", color="black", weight=3]; 10445[label="vyv586 * vyv585",fontsize=16,color="burlywood",shape="triangle"];11744[label="vyv586/vyv5860 :% vyv5861",fontsize=10,color="white",style="solid",shape="box"];10445 -> 11744[label="",style="solid", color="burlywood", weight=9]; 11744 -> 10478[label="",style="solid", color="burlywood", weight=3]; 10446[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10446 -> 10479[label="",style="solid", color="black", weight=3]; 10447[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10447 -> 10480[label="",style="solid", color="black", weight=3]; 10448[label="vyv586 * vyv585",fontsize=16,color="burlywood",shape="triangle"];11745[label="vyv586/Integer vyv5860",fontsize=10,color="white",style="solid",shape="box"];10448 -> 11745[label="",style="solid", color="burlywood", weight=9]; 11745 -> 10481[label="",style="solid", color="burlywood", weight=3]; 10449[label="vyv586 * vyv585",fontsize=16,color="black",shape="triangle"];10449 -> 10482[label="",style="solid", color="black", weight=3]; 10730[label="vyv3021",fontsize=16,color="green",shape="box"];10731[label="vyv3021",fontsize=16,color="green",shape="box"];10732[label="Integer vyv6290 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];10732 -> 10744[label="",style="solid", color="black", weight=3]; 10742[label="reduce2Reduce0 (vyv624 * vyv625) (vyv626 * vyv627) (vyv624 * vyv625) (vyv626 * vyv627) True",fontsize=16,color="black",shape="box"];10742 -> 10752[label="",style="solid", color="black", weight=3]; 10389[label="primMulNat (Succ vyv302000) (Succ (Succ vyv302000))",fontsize=16,color="black",shape="box"];10389 -> 10413[label="",style="solid", color="black", weight=3]; 10390[label="primMulNat Zero (Succ Zero)",fontsize=16,color="black",shape="box"];10390 -> 10414[label="",style="solid", color="black", weight=3]; 10992[label="primDivNatS0 (Succ vyv633000) vyv64600 (primGEqNatS (Succ vyv633000) vyv64600)",fontsize=16,color="burlywood",shape="box"];11746[label="vyv64600/Succ vyv646000",fontsize=10,color="white",style="solid",shape="box"];10992 -> 11746[label="",style="solid", color="burlywood", weight=9]; 11746 -> 11003[label="",style="solid", color="burlywood", weight=3]; 11747[label="vyv64600/Zero",fontsize=10,color="white",style="solid",shape="box"];10992 -> 11747[label="",style="solid", color="burlywood", weight=9]; 11747 -> 11004[label="",style="solid", color="burlywood", weight=3]; 10993[label="primDivNatS0 Zero vyv64600 (primGEqNatS Zero vyv64600)",fontsize=16,color="burlywood",shape="box"];11748[label="vyv64600/Succ vyv646000",fontsize=10,color="white",style="solid",shape="box"];10993 -> 11748[label="",style="solid", color="burlywood", weight=9]; 11748 -> 11005[label="",style="solid", color="burlywood", weight=3]; 11749[label="vyv64600/Zero",fontsize=10,color="white",style="solid",shape="box"];10993 -> 11749[label="",style="solid", color="burlywood", weight=9]; 11749 -> 11006[label="",style="solid", color="burlywood", weight=3]; 10743[label="vyv610",fontsize=16,color="green",shape="box"];10384[label="primDivNatS (Succ vyv587) (Succ (Succ Zero))",fontsize=16,color="black",shape="triangle"];10384 -> 10408[label="",style="solid", color="black", weight=3]; 10409[label="primMinusInt (Neg (Succ vyv599)) vyv602",fontsize=16,color="burlywood",shape="box"];11750[label="vyv602/Pos vyv6020",fontsize=10,color="white",style="solid",shape="box"];10409 -> 11750[label="",style="solid", color="burlywood", weight=9]; 11750 -> 10436[label="",style="solid", color="burlywood", weight=3]; 11751[label="vyv602/Neg vyv6020",fontsize=10,color="white",style="solid",shape="box"];10409 -> 11751[label="",style="solid", color="burlywood", weight=9]; 11751 -> 10437[label="",style="solid", color="burlywood", weight=3]; 10410 -> 10438[label="",style="dashed", color="red", weight=0]; 10410[label="pr2F0 vyv598 (Neg (Succ vyv599) - vyv602) (vyv598 * vyv597)",fontsize=16,color="magenta"];10410 -> 10442[label="",style="dashed", color="magenta", weight=3]; 10411[label="vyv598 * vyv597",fontsize=16,color="blue",shape="box"];11752[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11752[label="",style="solid", color="blue", weight=9]; 11752 -> 10451[label="",style="solid", color="blue", weight=3]; 11753[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11753[label="",style="solid", color="blue", weight=9]; 11753 -> 10452[label="",style="solid", color="blue", weight=3]; 11754[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11754[label="",style="solid", color="blue", weight=9]; 11754 -> 10453[label="",style="solid", color="blue", weight=3]; 11755[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11755[label="",style="solid", color="blue", weight=9]; 11755 -> 10454[label="",style="solid", color="blue", weight=3]; 11756[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10411 -> 11756[label="",style="solid", color="blue", weight=9]; 11756 -> 10455[label="",style="solid", color="blue", weight=3]; 10476[label="primMinusNat (Succ vyv587) vyv6030",fontsize=16,color="burlywood",shape="box"];11757[label="vyv6030/Succ vyv60300",fontsize=10,color="white",style="solid",shape="box"];10476 -> 11757[label="",style="solid", color="burlywood", weight=9]; 11757 -> 10532[label="",style="solid", color="burlywood", weight=3]; 11758[label="vyv6030/Zero",fontsize=10,color="white",style="solid",shape="box"];10476 -> 11758[label="",style="solid", color="burlywood", weight=9]; 11758 -> 10533[label="",style="solid", color="burlywood", weight=3]; 10477[label="Pos (primPlusNat (Succ vyv587) vyv6030)",fontsize=16,color="green",shape="box"];10477 -> 10534[label="",style="dashed", color="green", weight=3]; 10426[label="primEqInt (Pos (Succ vyv60000)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10426 -> 10458[label="",style="solid", color="black", weight=3]; 10427[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10427 -> 10459[label="",style="solid", color="black", weight=3]; 10428[label="primEqInt (Neg (Succ vyv60000)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10428 -> 10460[label="",style="solid", color="black", weight=3]; 10429[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];10429 -> 10461[label="",style="solid", color="black", weight=3]; 10450 -> 10059[label="",style="dashed", color="red", weight=0]; 10450[label="pr2F0G (vyv598 * vyv597) vyv598 vyv606",fontsize=16,color="magenta"];10450 -> 10483[label="",style="dashed", color="magenta", weight=3]; 10450 -> 10484[label="",style="dashed", color="magenta", weight=3]; 10450 -> 10485[label="",style="dashed", color="magenta", weight=3]; 10478[label="vyv5860 :% vyv5861 * vyv585",fontsize=16,color="burlywood",shape="box"];11759[label="vyv585/vyv5850 :% vyv5851",fontsize=10,color="white",style="solid",shape="box"];10478 -> 11759[label="",style="solid", color="burlywood", weight=9]; 11759 -> 10535[label="",style="solid", color="burlywood", weight=3]; 10479[label="primMulDouble vyv586 vyv585",fontsize=16,color="burlywood",shape="box"];11760[label="vyv586/Double vyv5860 vyv5861",fontsize=10,color="white",style="solid",shape="box"];10479 -> 11760[label="",style="solid", color="burlywood", weight=9]; 11760 -> 10536[label="",style="solid", color="burlywood", weight=3]; 10480[label="primMulInt vyv586 vyv585",fontsize=16,color="burlywood",shape="triangle"];11761[label="vyv586/Pos vyv5860",fontsize=10,color="white",style="solid",shape="box"];10480 -> 11761[label="",style="solid", color="burlywood", weight=9]; 11761 -> 10537[label="",style="solid", color="burlywood", weight=3]; 11762[label="vyv586/Neg vyv5860",fontsize=10,color="white",style="solid",shape="box"];10480 -> 11762[label="",style="solid", color="burlywood", weight=9]; 11762 -> 10538[label="",style="solid", color="burlywood", weight=3]; 10481[label="Integer vyv5860 * vyv585",fontsize=16,color="burlywood",shape="box"];11763[label="vyv585/Integer vyv5850",fontsize=10,color="white",style="solid",shape="box"];10481 -> 11763[label="",style="solid", color="burlywood", weight=9]; 11763 -> 10539[label="",style="solid", color="burlywood", weight=3]; 10482[label="primMulFloat vyv586 vyv585",fontsize=16,color="burlywood",shape="box"];11764[label="vyv586/Float vyv5860 vyv5861",fontsize=10,color="white",style="solid",shape="box"];10482 -> 11764[label="",style="solid", color="burlywood", weight=9]; 11764 -> 10540[label="",style="solid", color="burlywood", weight=3]; 10744[label="Integer vyv6290 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];10744 -> 10753[label="",style="solid", color="black", weight=3]; 10752[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627) :% (vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627))",fontsize=16,color="green",shape="box"];10752 -> 10756[label="",style="dashed", color="green", weight=3]; 10752 -> 10757[label="",style="dashed", color="green", weight=3]; 10413 -> 94[label="",style="dashed", color="red", weight=0]; 10413[label="primPlusNat (primMulNat vyv302000 (Succ (Succ vyv302000))) (Succ (Succ vyv302000))",fontsize=16,color="magenta"];10413 -> 10464[label="",style="dashed", color="magenta", weight=3]; 10413 -> 10465[label="",style="dashed", color="magenta", weight=3]; 10414[label="Zero",fontsize=16,color="green",shape="box"];11003[label="primDivNatS0 (Succ vyv633000) (Succ vyv646000) (primGEqNatS (Succ vyv633000) (Succ vyv646000))",fontsize=16,color="black",shape="box"];11003 -> 11024[label="",style="solid", color="black", weight=3]; 11004[label="primDivNatS0 (Succ vyv633000) Zero (primGEqNatS (Succ vyv633000) Zero)",fontsize=16,color="black",shape="box"];11004 -> 11025[label="",style="solid", color="black", weight=3]; 11005[label="primDivNatS0 Zero (Succ vyv646000) (primGEqNatS Zero (Succ vyv646000))",fontsize=16,color="black",shape="box"];11005 -> 11026[label="",style="solid", color="black", weight=3]; 11006[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11006 -> 11027[label="",style="solid", color="black", weight=3]; 10408[label="primDivNatS0 vyv587 (Succ Zero) (primGEqNatS vyv587 (Succ Zero))",fontsize=16,color="burlywood",shape="box"];11765[label="vyv587/Succ vyv5870",fontsize=10,color="white",style="solid",shape="box"];10408 -> 11765[label="",style="solid", color="burlywood", weight=9]; 11765 -> 10434[label="",style="solid", color="burlywood", weight=3]; 11766[label="vyv587/Zero",fontsize=10,color="white",style="solid",shape="box"];10408 -> 11766[label="",style="solid", color="burlywood", weight=9]; 11766 -> 10435[label="",style="solid", color="burlywood", weight=3]; 10436[label="primMinusInt (Neg (Succ vyv599)) (Pos vyv6020)",fontsize=16,color="black",shape="box"];10436 -> 10472[label="",style="solid", color="black", weight=3]; 10437[label="primMinusInt (Neg (Succ vyv599)) (Neg vyv6020)",fontsize=16,color="black",shape="box"];10437 -> 10473[label="",style="solid", color="black", weight=3]; 10442 -> 10385[label="",style="dashed", color="red", weight=0]; 10442[label="Neg (Succ vyv599) - vyv602",fontsize=16,color="magenta"];10451 -> 10445[label="",style="dashed", color="red", weight=0]; 10451[label="vyv598 * vyv597",fontsize=16,color="magenta"];10451 -> 10486[label="",style="dashed", color="magenta", weight=3]; 10451 -> 10487[label="",style="dashed", color="magenta", weight=3]; 10452 -> 10446[label="",style="dashed", color="red", weight=0]; 10452[label="vyv598 * vyv597",fontsize=16,color="magenta"];10452 -> 10488[label="",style="dashed", color="magenta", weight=3]; 10452 -> 10489[label="",style="dashed", color="magenta", weight=3]; 10453 -> 10447[label="",style="dashed", color="red", weight=0]; 10453[label="vyv598 * vyv597",fontsize=16,color="magenta"];10453 -> 10490[label="",style="dashed", color="magenta", weight=3]; 10453 -> 10491[label="",style="dashed", color="magenta", weight=3]; 10454 -> 10448[label="",style="dashed", color="red", weight=0]; 10454[label="vyv598 * vyv597",fontsize=16,color="magenta"];10454 -> 10492[label="",style="dashed", color="magenta", weight=3]; 10454 -> 10493[label="",style="dashed", color="magenta", weight=3]; 10455 -> 10449[label="",style="dashed", color="red", weight=0]; 10455[label="vyv598 * vyv597",fontsize=16,color="magenta"];10455 -> 10494[label="",style="dashed", color="magenta", weight=3]; 10455 -> 10495[label="",style="dashed", color="magenta", weight=3]; 10532[label="primMinusNat (Succ vyv587) (Succ vyv60300)",fontsize=16,color="black",shape="box"];10532 -> 10565[label="",style="solid", color="black", weight=3]; 10533[label="primMinusNat (Succ vyv587) Zero",fontsize=16,color="black",shape="box"];10533 -> 10566[label="",style="solid", color="black", weight=3]; 10534 -> 94[label="",style="dashed", color="red", weight=0]; 10534[label="primPlusNat (Succ vyv587) vyv6030",fontsize=16,color="magenta"];10534 -> 10567[label="",style="dashed", color="magenta", weight=3]; 10534 -> 10568[label="",style="dashed", color="magenta", weight=3]; 10458 -> 10430[label="",style="dashed", color="red", weight=0]; 10458[label="primEqInt (Pos (Succ vyv60000)) (Pos Zero)",fontsize=16,color="magenta"];10458 -> 10499[label="",style="dashed", color="magenta", weight=3]; 10459 -> 10430[label="",style="dashed", color="red", weight=0]; 10459[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];10459 -> 10500[label="",style="dashed", color="magenta", weight=3]; 10460 -> 10430[label="",style="dashed", color="red", weight=0]; 10460[label="primEqInt (Neg (Succ vyv60000)) (Pos Zero)",fontsize=16,color="magenta"];10460 -> 10501[label="",style="dashed", color="magenta", weight=3]; 10461 -> 10430[label="",style="dashed", color="red", weight=0]; 10461[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];10461 -> 10502[label="",style="dashed", color="magenta", weight=3]; 10483[label="vyv598",fontsize=16,color="green",shape="box"];10484[label="vyv598 * vyv597",fontsize=16,color="blue",shape="box"];11767[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11767[label="",style="solid", color="blue", weight=9]; 11767 -> 10541[label="",style="solid", color="blue", weight=3]; 11768[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11768[label="",style="solid", color="blue", weight=9]; 11768 -> 10542[label="",style="solid", color="blue", weight=3]; 11769[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11769[label="",style="solid", color="blue", weight=9]; 11769 -> 10543[label="",style="solid", color="blue", weight=3]; 11770[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11770[label="",style="solid", color="blue", weight=9]; 11770 -> 10544[label="",style="solid", color="blue", weight=3]; 11771[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];10484 -> 11771[label="",style="solid", color="blue", weight=9]; 11771 -> 10545[label="",style="solid", color="blue", weight=3]; 10485[label="vyv606",fontsize=16,color="green",shape="box"];10535[label="vyv5860 :% vyv5861 * (vyv5850 :% vyv5851)",fontsize=16,color="black",shape="box"];10535 -> 10569[label="",style="solid", color="black", weight=3]; 10536[label="primMulDouble (Double vyv5860 vyv5861) vyv585",fontsize=16,color="burlywood",shape="box"];11772[label="vyv585/Double vyv5850 vyv5851",fontsize=10,color="white",style="solid",shape="box"];10536 -> 11772[label="",style="solid", color="burlywood", weight=9]; 11772 -> 10570[label="",style="solid", color="burlywood", weight=3]; 10537[label="primMulInt (Pos vyv5860) vyv585",fontsize=16,color="burlywood",shape="box"];11773[label="vyv585/Pos vyv5850",fontsize=10,color="white",style="solid",shape="box"];10537 -> 11773[label="",style="solid", color="burlywood", weight=9]; 11773 -> 10571[label="",style="solid", color="burlywood", weight=3]; 11774[label="vyv585/Neg vyv5850",fontsize=10,color="white",style="solid",shape="box"];10537 -> 11774[label="",style="solid", color="burlywood", weight=9]; 11774 -> 10572[label="",style="solid", color="burlywood", weight=3]; 10538[label="primMulInt (Neg vyv5860) vyv585",fontsize=16,color="burlywood",shape="box"];11775[label="vyv585/Pos vyv5850",fontsize=10,color="white",style="solid",shape="box"];10538 -> 11775[label="",style="solid", color="burlywood", weight=9]; 11775 -> 10573[label="",style="solid", color="burlywood", weight=3]; 11776[label="vyv585/Neg vyv5850",fontsize=10,color="white",style="solid",shape="box"];10538 -> 11776[label="",style="solid", color="burlywood", weight=9]; 11776 -> 10574[label="",style="solid", color="burlywood", weight=3]; 10539[label="Integer vyv5860 * Integer vyv5850",fontsize=16,color="black",shape="box"];10539 -> 10575[label="",style="solid", color="black", weight=3]; 10540[label="primMulFloat (Float vyv5860 vyv5861) vyv585",fontsize=16,color="burlywood",shape="box"];11777[label="vyv585/Float vyv5850 vyv5851",fontsize=10,color="white",style="solid",shape="box"];10540 -> 11777[label="",style="solid", color="burlywood", weight=9]; 11777 -> 10576[label="",style="solid", color="burlywood", weight=3]; 10753 -> 10430[label="",style="dashed", color="red", weight=0]; 10753[label="primEqInt vyv6290 (Pos Zero)",fontsize=16,color="magenta"];10753 -> 10758[label="",style="dashed", color="magenta", weight=3]; 10756[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="blue",shape="box"];11778[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10756 -> 11778[label="",style="solid", color="blue", weight=9]; 11778 -> 10761[label="",style="solid", color="blue", weight=3]; 11779[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10756 -> 11779[label="",style="solid", color="blue", weight=9]; 11779 -> 10762[label="",style="solid", color="blue", weight=3]; 10757[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="blue",shape="box"];11780[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];10757 -> 11780[label="",style="solid", color="blue", weight=9]; 11780 -> 10763[label="",style="solid", color="blue", weight=3]; 11781[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];10757 -> 11781[label="",style="solid", color="blue", weight=9]; 11781 -> 10764[label="",style="solid", color="blue", weight=3]; 10464[label="primMulNat vyv302000 (Succ (Succ vyv302000))",fontsize=16,color="burlywood",shape="box"];11782[label="vyv302000/Succ vyv3020000",fontsize=10,color="white",style="solid",shape="box"];10464 -> 11782[label="",style="solid", color="burlywood", weight=9]; 11782 -> 10507[label="",style="solid", color="burlywood", weight=3]; 11783[label="vyv302000/Zero",fontsize=10,color="white",style="solid",shape="box"];10464 -> 11783[label="",style="solid", color="burlywood", weight=9]; 11783 -> 10508[label="",style="solid", color="burlywood", weight=3]; 10465[label="Succ (Succ vyv302000)",fontsize=16,color="green",shape="box"];11024 -> 11340[label="",style="dashed", color="red", weight=0]; 11024[label="primDivNatS0 (Succ vyv633000) (Succ vyv646000) (primGEqNatS vyv633000 vyv646000)",fontsize=16,color="magenta"];11024 -> 11341[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11342[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11343[label="",style="dashed", color="magenta", weight=3]; 11024 -> 11344[label="",style="dashed", color="magenta", weight=3]; 11025[label="primDivNatS0 (Succ vyv633000) Zero True",fontsize=16,color="black",shape="box"];11025 -> 11033[label="",style="solid", color="black", weight=3]; 11026[label="primDivNatS0 Zero (Succ vyv646000) False",fontsize=16,color="black",shape="box"];11026 -> 11034[label="",style="solid", color="black", weight=3]; 11027[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];11027 -> 11035[label="",style="solid", color="black", weight=3]; 10434[label="primDivNatS0 (Succ vyv5870) (Succ Zero) (primGEqNatS (Succ vyv5870) (Succ Zero))",fontsize=16,color="black",shape="box"];10434 -> 10456[label="",style="solid", color="black", weight=3]; 10435[label="primDivNatS0 Zero (Succ Zero) (primGEqNatS Zero (Succ Zero))",fontsize=16,color="black",shape="box"];10435 -> 10457[label="",style="solid", color="black", weight=3]; 10472[label="Neg (primPlusNat (Succ vyv599) vyv6020)",fontsize=16,color="green",shape="box"];10472 -> 10546[label="",style="dashed", color="green", weight=3]; 10473[label="primMinusNat vyv6020 (Succ vyv599)",fontsize=16,color="burlywood",shape="box"];11784[label="vyv6020/Succ vyv60200",fontsize=10,color="white",style="solid",shape="box"];10473 -> 11784[label="",style="solid", color="burlywood", weight=9]; 11784 -> 10547[label="",style="solid", color="burlywood", weight=3]; 11785[label="vyv6020/Zero",fontsize=10,color="white",style="solid",shape="box"];10473 -> 11785[label="",style="solid", color="burlywood", weight=9]; 11785 -> 10548[label="",style="solid", color="burlywood", weight=3]; 10486[label="vyv597",fontsize=16,color="green",shape="box"];10487[label="vyv598",fontsize=16,color="green",shape="box"];10488[label="vyv597",fontsize=16,color="green",shape="box"];10489[label="vyv598",fontsize=16,color="green",shape="box"];10490[label="vyv597",fontsize=16,color="green",shape="box"];10491[label="vyv598",fontsize=16,color="green",shape="box"];10492[label="vyv597",fontsize=16,color="green",shape="box"];10493[label="vyv598",fontsize=16,color="green",shape="box"];10494[label="vyv597",fontsize=16,color="green",shape="box"];10495[label="vyv598",fontsize=16,color="green",shape="box"];10565[label="primMinusNat vyv587 vyv60300",fontsize=16,color="burlywood",shape="triangle"];11786[label="vyv587/Succ vyv5870",fontsize=10,color="white",style="solid",shape="box"];10565 -> 11786[label="",style="solid", color="burlywood", weight=9]; 11786 -> 10597[label="",style="solid", color="burlywood", weight=3]; 11787[label="vyv587/Zero",fontsize=10,color="white",style="solid",shape="box"];10565 -> 11787[label="",style="solid", color="burlywood", weight=9]; 11787 -> 10598[label="",style="solid", color="burlywood", weight=3]; 10566[label="Pos (Succ vyv587)",fontsize=16,color="green",shape="box"];10567[label="Succ vyv587",fontsize=16,color="green",shape="box"];10568[label="vyv6030",fontsize=16,color="green",shape="box"];10499[label="Pos (Succ vyv60000)",fontsize=16,color="green",shape="box"];10430[label="primEqInt vyv6010 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];11788[label="vyv6010/Pos vyv60100",fontsize=10,color="white",style="solid",shape="box"];10430 -> 11788[label="",style="solid", color="burlywood", weight=9]; 11788 -> 10474[label="",style="solid", color="burlywood", weight=3]; 11789[label="vyv6010/Neg vyv60100",fontsize=10,color="white",style="solid",shape="box"];10430 -> 11789[label="",style="solid", color="burlywood", weight=9]; 11789 -> 10475[label="",style="solid", color="burlywood", weight=3]; 10500[label="Pos Zero",fontsize=16,color="green",shape="box"];10501[label="Neg (Succ vyv60000)",fontsize=16,color="green",shape="box"];10502[label="Neg Zero",fontsize=16,color="green",shape="box"];10541 -> 10445[label="",style="dashed", color="red", weight=0]; 10541[label="vyv598 * vyv597",fontsize=16,color="magenta"];10541 -> 10577[label="",style="dashed", color="magenta", weight=3]; 10541 -> 10578[label="",style="dashed", color="magenta", weight=3]; 10542 -> 10446[label="",style="dashed", color="red", weight=0]; 10542[label="vyv598 * vyv597",fontsize=16,color="magenta"];10542 -> 10579[label="",style="dashed", color="magenta", weight=3]; 10542 -> 10580[label="",style="dashed", color="magenta", weight=3]; 10543 -> 10447[label="",style="dashed", color="red", weight=0]; 10543[label="vyv598 * vyv597",fontsize=16,color="magenta"];10543 -> 10581[label="",style="dashed", color="magenta", weight=3]; 10543 -> 10582[label="",style="dashed", color="magenta", weight=3]; 10544 -> 10448[label="",style="dashed", color="red", weight=0]; 10544[label="vyv598 * vyv597",fontsize=16,color="magenta"];10544 -> 10583[label="",style="dashed", color="magenta", weight=3]; 10544 -> 10584[label="",style="dashed", color="magenta", weight=3]; 10545 -> 10449[label="",style="dashed", color="red", weight=0]; 10545[label="vyv598 * vyv597",fontsize=16,color="magenta"];10545 -> 10585[label="",style="dashed", color="magenta", weight=3]; 10545 -> 10586[label="",style="dashed", color="magenta", weight=3]; 10569[label="reduce (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="black",shape="box"];10569 -> 10599[label="",style="solid", color="black", weight=3]; 10570[label="primMulDouble (Double vyv5860 vyv5861) (Double vyv5850 vyv5851)",fontsize=16,color="black",shape="box"];10570 -> 10600[label="",style="solid", color="black", weight=3]; 10571[label="primMulInt (Pos vyv5860) (Pos vyv5850)",fontsize=16,color="black",shape="box"];10571 -> 10601[label="",style="solid", color="black", weight=3]; 10572[label="primMulInt (Pos vyv5860) (Neg vyv5850)",fontsize=16,color="black",shape="box"];10572 -> 10602[label="",style="solid", color="black", weight=3]; 10573[label="primMulInt (Neg vyv5860) (Pos vyv5850)",fontsize=16,color="black",shape="box"];10573 -> 10603[label="",style="solid", color="black", weight=3]; 10574[label="primMulInt (Neg vyv5860) (Neg vyv5850)",fontsize=16,color="black",shape="box"];10574 -> 10604[label="",style="solid", color="black", weight=3]; 10575[label="Integer (primMulInt vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10575 -> 10605[label="",style="dashed", color="green", weight=3]; 10576[label="primMulFloat (Float vyv5860 vyv5861) (Float vyv5850 vyv5851)",fontsize=16,color="black",shape="box"];10576 -> 10606[label="",style="solid", color="black", weight=3]; 10758[label="vyv6290",fontsize=16,color="green",shape="box"];10761 -> 10765[label="",style="dashed", color="red", weight=0]; 10761[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10761 -> 10766[label="",style="dashed", color="magenta", weight=3]; 10761 -> 10767[label="",style="dashed", color="magenta", weight=3]; 10761 -> 10768[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10772[label="",style="dashed", color="red", weight=0]; 10762[label="vyv624 * vyv625 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10762 -> 10773[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10774[label="",style="dashed", color="magenta", weight=3]; 10762 -> 10775[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10765[label="",style="dashed", color="red", weight=0]; 10763[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10763 -> 10769[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10770[label="",style="dashed", color="magenta", weight=3]; 10763 -> 10771[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10772[label="",style="dashed", color="red", weight=0]; 10764[label="vyv626 * vyv627 `quot` reduce2D (vyv624 * vyv625) (vyv626 * vyv627)",fontsize=16,color="magenta"];10764 -> 10776[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10777[label="",style="dashed", color="magenta", weight=3]; 10764 -> 10778[label="",style="dashed", color="magenta", weight=3]; 10507[label="primMulNat (Succ vyv3020000) (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="black",shape="box"];10507 -> 10607[label="",style="solid", color="black", weight=3]; 10508[label="primMulNat Zero (Succ (Succ Zero))",fontsize=16,color="black",shape="box"];10508 -> 10608[label="",style="solid", color="black", weight=3]; 11341[label="vyv646000",fontsize=16,color="green",shape="box"];11342[label="vyv646000",fontsize=16,color="green",shape="box"];11343[label="vyv633000",fontsize=16,color="green",shape="box"];11344[label="vyv633000",fontsize=16,color="green",shape="box"];11340[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS vyv678 vyv679)",fontsize=16,color="burlywood",shape="triangle"];11790[label="vyv678/Succ vyv6780",fontsize=10,color="white",style="solid",shape="box"];11340 -> 11790[label="",style="solid", color="burlywood", weight=9]; 11790 -> 11377[label="",style="solid", color="burlywood", weight=3]; 11791[label="vyv678/Zero",fontsize=10,color="white",style="solid",shape="box"];11340 -> 11791[label="",style="solid", color="burlywood", weight=9]; 11791 -> 11378[label="",style="solid", color="burlywood", weight=3]; 11033[label="Succ (primDivNatS (primMinusNatS (Succ vyv633000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];11033 -> 11049[label="",style="dashed", color="green", weight=3]; 11034[label="Zero",fontsize=16,color="green",shape="box"];11035[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];11035 -> 11050[label="",style="dashed", color="green", weight=3]; 10456 -> 11340[label="",style="dashed", color="red", weight=0]; 10456[label="primDivNatS0 (Succ vyv5870) (Succ Zero) (primGEqNatS vyv5870 Zero)",fontsize=16,color="magenta"];10456 -> 11345[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11346[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11347[label="",style="dashed", color="magenta", weight=3]; 10456 -> 11348[label="",style="dashed", color="magenta", weight=3]; 10457[label="primDivNatS0 Zero (Succ Zero) False",fontsize=16,color="black",shape="box"];10457 -> 10498[label="",style="solid", color="black", weight=3]; 10546 -> 94[label="",style="dashed", color="red", weight=0]; 10546[label="primPlusNat (Succ vyv599) vyv6020",fontsize=16,color="magenta"];10546 -> 10609[label="",style="dashed", color="magenta", weight=3]; 10546 -> 10610[label="",style="dashed", color="magenta", weight=3]; 10547[label="primMinusNat (Succ vyv60200) (Succ vyv599)",fontsize=16,color="black",shape="box"];10547 -> 10611[label="",style="solid", color="black", weight=3]; 10548[label="primMinusNat Zero (Succ vyv599)",fontsize=16,color="black",shape="box"];10548 -> 10612[label="",style="solid", color="black", weight=3]; 10597[label="primMinusNat (Succ vyv5870) vyv60300",fontsize=16,color="burlywood",shape="box"];11792[label="vyv60300/Succ vyv603000",fontsize=10,color="white",style="solid",shape="box"];10597 -> 11792[label="",style="solid", color="burlywood", weight=9]; 11792 -> 10640[label="",style="solid", color="burlywood", weight=3]; 11793[label="vyv60300/Zero",fontsize=10,color="white",style="solid",shape="box"];10597 -> 11793[label="",style="solid", color="burlywood", weight=9]; 11793 -> 10641[label="",style="solid", color="burlywood", weight=3]; 10598[label="primMinusNat Zero vyv60300",fontsize=16,color="burlywood",shape="box"];11794[label="vyv60300/Succ vyv603000",fontsize=10,color="white",style="solid",shape="box"];10598 -> 11794[label="",style="solid", color="burlywood", weight=9]; 11794 -> 10642[label="",style="solid", color="burlywood", weight=3]; 11795[label="vyv60300/Zero",fontsize=10,color="white",style="solid",shape="box"];10598 -> 11795[label="",style="solid", color="burlywood", weight=9]; 11795 -> 10643[label="",style="solid", color="burlywood", weight=3]; 10474[label="primEqInt (Pos vyv60100) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];11796[label="vyv60100/Succ vyv601000",fontsize=10,color="white",style="solid",shape="box"];10474 -> 11796[label="",style="solid", color="burlywood", weight=9]; 11796 -> 10551[label="",style="solid", color="burlywood", weight=3]; 11797[label="vyv60100/Zero",fontsize=10,color="white",style="solid",shape="box"];10474 -> 11797[label="",style="solid", color="burlywood", weight=9]; 11797 -> 10552[label="",style="solid", color="burlywood", weight=3]; 10475[label="primEqInt (Neg vyv60100) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];11798[label="vyv60100/Succ vyv601000",fontsize=10,color="white",style="solid",shape="box"];10475 -> 11798[label="",style="solid", color="burlywood", weight=9]; 11798 -> 10553[label="",style="solid", color="burlywood", weight=3]; 11799[label="vyv60100/Zero",fontsize=10,color="white",style="solid",shape="box"];10475 -> 11799[label="",style="solid", color="burlywood", weight=9]; 11799 -> 10554[label="",style="solid", color="burlywood", weight=3]; 10577[label="vyv597",fontsize=16,color="green",shape="box"];10578[label="vyv598",fontsize=16,color="green",shape="box"];10579[label="vyv597",fontsize=16,color="green",shape="box"];10580[label="vyv598",fontsize=16,color="green",shape="box"];10581[label="vyv597",fontsize=16,color="green",shape="box"];10582[label="vyv598",fontsize=16,color="green",shape="box"];10583[label="vyv597",fontsize=16,color="green",shape="box"];10584[label="vyv598",fontsize=16,color="green",shape="box"];10585[label="vyv597",fontsize=16,color="green",shape="box"];10586[label="vyv598",fontsize=16,color="green",shape="box"];10599[label="reduce2 (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="black",shape="box"];10599 -> 10644[label="",style="solid", color="black", weight=3]; 10600[label="Double (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="green",shape="box"];10600 -> 10645[label="",style="dashed", color="green", weight=3]; 10600 -> 10646[label="",style="dashed", color="green", weight=3]; 10601[label="Pos (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10601 -> 10647[label="",style="dashed", color="green", weight=3]; 10602[label="Neg (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10602 -> 10648[label="",style="dashed", color="green", weight=3]; 10603[label="Neg (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10603 -> 10649[label="",style="dashed", color="green", weight=3]; 10604[label="Pos (primMulNat vyv5860 vyv5850)",fontsize=16,color="green",shape="box"];10604 -> 10650[label="",style="dashed", color="green", weight=3]; 10605 -> 10480[label="",style="dashed", color="red", weight=0]; 10605[label="primMulInt vyv5860 vyv5850",fontsize=16,color="magenta"];10605 -> 10651[label="",style="dashed", color="magenta", weight=3]; 10605 -> 10652[label="",style="dashed", color="magenta", weight=3]; 10606[label="Float (vyv5860 * vyv5850) (vyv5861 * vyv5851)",fontsize=16,color="green",shape="box"];10606 -> 10653[label="",style="dashed", color="green", weight=3]; 10606 -> 10654[label="",style="dashed", color="green", weight=3]; 10766 -> 10448[label="",style="dashed", color="red", weight=0]; 10766[label="vyv626 * vyv627",fontsize=16,color="magenta"];10766 -> 10779[label="",style="dashed", color="magenta", weight=3]; 10766 -> 10780[label="",style="dashed", color="magenta", weight=3]; 10767 -> 10448[label="",style="dashed", color="red", weight=0]; 10767[label="vyv624 * vyv625",fontsize=16,color="magenta"];10767 -> 10781[label="",style="dashed", color="magenta", weight=3]; 10767 -> 10782[label="",style="dashed", color="magenta", weight=3]; 10768 -> 10448[label="",style="dashed", color="red", weight=0]; 10768[label="vyv624 * vyv625",fontsize=16,color="magenta"];10768 -> 10783[label="",style="dashed", color="magenta", weight=3]; 10768 -> 10784[label="",style="dashed", color="magenta", weight=3]; 10765[label="vyv630 `quot` reduce2D vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11800[label="vyv630/Integer vyv6300",fontsize=10,color="white",style="solid",shape="box"];10765 -> 11800[label="",style="solid", color="burlywood", weight=9]; 11800 -> 10785[label="",style="solid", color="burlywood", weight=3]; 10773 -> 10447[label="",style="dashed", color="red", weight=0]; 10773[label="vyv624 * vyv625",fontsize=16,color="magenta"];10773 -> 10786[label="",style="dashed", color="magenta", weight=3]; 10773 -> 10787[label="",style="dashed", color="magenta", weight=3]; 10774 -> 10447[label="",style="dashed", color="red", weight=0]; 10774[label="vyv626 * vyv627",fontsize=16,color="magenta"];10774 -> 10788[label="",style="dashed", color="magenta", weight=3]; 10774 -> 10789[label="",style="dashed", color="magenta", weight=3]; 10775 -> 10447[label="",style="dashed", color="red", weight=0]; 10775[label="vyv624 * vyv625",fontsize=16,color="magenta"];10775 -> 10790[label="",style="dashed", color="magenta", weight=3]; 10775 -> 10791[label="",style="dashed", color="magenta", weight=3]; 10772[label="vyv633 `quot` reduce2D vyv635 vyv634",fontsize=16,color="black",shape="triangle"];10772 -> 10792[label="",style="solid", color="black", weight=3]; 10769 -> 10448[label="",style="dashed", color="red", weight=0]; 10769[label="vyv626 * vyv627",fontsize=16,color="magenta"];10769 -> 10793[label="",style="dashed", color="magenta", weight=3]; 10769 -> 10794[label="",style="dashed", color="magenta", weight=3]; 10770 -> 10448[label="",style="dashed", color="red", weight=0]; 10770[label="vyv624 * vyv625",fontsize=16,color="magenta"];10770 -> 10795[label="",style="dashed", color="magenta", weight=3]; 10770 -> 10796[label="",style="dashed", color="magenta", weight=3]; 10771 -> 10448[label="",style="dashed", color="red", weight=0]; 10771[label="vyv626 * vyv627",fontsize=16,color="magenta"];10771 -> 10797[label="",style="dashed", color="magenta", weight=3]; 10771 -> 10798[label="",style="dashed", color="magenta", weight=3]; 10776 -> 10447[label="",style="dashed", color="red", weight=0]; 10776[label="vyv624 * vyv625",fontsize=16,color="magenta"];10776 -> 10799[label="",style="dashed", color="magenta", weight=3]; 10776 -> 10800[label="",style="dashed", color="magenta", weight=3]; 10777 -> 10447[label="",style="dashed", color="red", weight=0]; 10777[label="vyv626 * vyv627",fontsize=16,color="magenta"];10777 -> 10801[label="",style="dashed", color="magenta", weight=3]; 10777 -> 10802[label="",style="dashed", color="magenta", weight=3]; 10778 -> 10447[label="",style="dashed", color="red", weight=0]; 10778[label="vyv626 * vyv627",fontsize=16,color="magenta"];10778 -> 10803[label="",style="dashed", color="magenta", weight=3]; 10778 -> 10804[label="",style="dashed", color="magenta", weight=3]; 10607 -> 94[label="",style="dashed", color="red", weight=0]; 10607[label="primPlusNat (primMulNat vyv3020000 (Succ (Succ (Succ vyv3020000)))) (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="magenta"];10607 -> 10655[label="",style="dashed", color="magenta", weight=3]; 10607 -> 10656[label="",style="dashed", color="magenta", weight=3]; 10608[label="Zero",fontsize=16,color="green",shape="box"];11377[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) vyv679)",fontsize=16,color="burlywood",shape="box"];11801[label="vyv679/Succ vyv6790",fontsize=10,color="white",style="solid",shape="box"];11377 -> 11801[label="",style="solid", color="burlywood", weight=9]; 11801 -> 11385[label="",style="solid", color="burlywood", weight=3]; 11802[label="vyv679/Zero",fontsize=10,color="white",style="solid",shape="box"];11377 -> 11802[label="",style="solid", color="burlywood", weight=9]; 11802 -> 11386[label="",style="solid", color="burlywood", weight=3]; 11378[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero vyv679)",fontsize=16,color="burlywood",shape="box"];11803[label="vyv679/Succ vyv6790",fontsize=10,color="white",style="solid",shape="box"];11378 -> 11803[label="",style="solid", color="burlywood", weight=9]; 11803 -> 11387[label="",style="solid", color="burlywood", weight=3]; 11804[label="vyv679/Zero",fontsize=10,color="white",style="solid",shape="box"];11378 -> 11804[label="",style="solid", color="burlywood", weight=9]; 11804 -> 11388[label="",style="solid", color="burlywood", weight=3]; 11049 -> 10949[label="",style="dashed", color="red", weight=0]; 11049[label="primDivNatS (primMinusNatS (Succ vyv633000) Zero) (Succ Zero)",fontsize=16,color="magenta"];11049 -> 11059[label="",style="dashed", color="magenta", weight=3]; 11049 -> 11060[label="",style="dashed", color="magenta", weight=3]; 11050 -> 10949[label="",style="dashed", color="red", weight=0]; 11050[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];11050 -> 11061[label="",style="dashed", color="magenta", weight=3]; 11050 -> 11062[label="",style="dashed", color="magenta", weight=3]; 11345[label="Zero",fontsize=16,color="green",shape="box"];11346[label="Zero",fontsize=16,color="green",shape="box"];11347[label="vyv5870",fontsize=16,color="green",shape="box"];11348[label="vyv5870",fontsize=16,color="green",shape="box"];10498[label="Zero",fontsize=16,color="green",shape="box"];10609[label="Succ vyv599",fontsize=16,color="green",shape="box"];10610[label="vyv6020",fontsize=16,color="green",shape="box"];10611 -> 10565[label="",style="dashed", color="red", weight=0]; 10611[label="primMinusNat vyv60200 vyv599",fontsize=16,color="magenta"];10611 -> 10657[label="",style="dashed", color="magenta", weight=3]; 10611 -> 10658[label="",style="dashed", color="magenta", weight=3]; 10612[label="Neg (Succ vyv599)",fontsize=16,color="green",shape="box"];10640[label="primMinusNat (Succ vyv5870) (Succ vyv603000)",fontsize=16,color="black",shape="box"];10640 -> 10670[label="",style="solid", color="black", weight=3]; 10641[label="primMinusNat (Succ vyv5870) Zero",fontsize=16,color="black",shape="box"];10641 -> 10671[label="",style="solid", color="black", weight=3]; 10642[label="primMinusNat Zero (Succ vyv603000)",fontsize=16,color="black",shape="box"];10642 -> 10672[label="",style="solid", color="black", weight=3]; 10643[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];10643 -> 10673[label="",style="solid", color="black", weight=3]; 10551[label="primEqInt (Pos (Succ vyv601000)) (Pos Zero)",fontsize=16,color="black",shape="box"];10551 -> 10615[label="",style="solid", color="black", weight=3]; 10552[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];10552 -> 10616[label="",style="solid", color="black", weight=3]; 10553[label="primEqInt (Neg (Succ vyv601000)) (Pos Zero)",fontsize=16,color="black",shape="box"];10553 -> 10617[label="",style="solid", color="black", weight=3]; 10554[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];10554 -> 10618[label="",style="solid", color="black", weight=3]; 10644 -> 10674[label="",style="dashed", color="red", weight=0]; 10644[label="reduce2Reduce1 (vyv5860 * vyv5850) (vyv5861 * vyv5851) (vyv5860 * vyv5850) (vyv5861 * vyv5851) (vyv5861 * vyv5851 == fromInt (Pos Zero))",fontsize=16,color="magenta"];10644 -> 10685[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10686[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10687[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10688[label="",style="dashed", color="magenta", weight=3]; 10644 -> 10689[label="",style="dashed", color="magenta", weight=3]; 10645 -> 10447[label="",style="dashed", color="red", weight=0]; 10645[label="vyv5860 * vyv5850",fontsize=16,color="magenta"];10645 -> 10700[label="",style="dashed", color="magenta", weight=3]; 10645 -> 10701[label="",style="dashed", color="magenta", weight=3]; 10646 -> 10447[label="",style="dashed", color="red", weight=0]; 10646[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10646 -> 10702[label="",style="dashed", color="magenta", weight=3]; 10646 -> 10703[label="",style="dashed", color="magenta", weight=3]; 10647[label="primMulNat vyv5860 vyv5850",fontsize=16,color="burlywood",shape="triangle"];11805[label="vyv5860/Succ vyv58600",fontsize=10,color="white",style="solid",shape="box"];10647 -> 11805[label="",style="solid", color="burlywood", weight=9]; 11805 -> 10704[label="",style="solid", color="burlywood", weight=3]; 11806[label="vyv5860/Zero",fontsize=10,color="white",style="solid",shape="box"];10647 -> 11806[label="",style="solid", color="burlywood", weight=9]; 11806 -> 10705[label="",style="solid", color="burlywood", weight=3]; 10648 -> 10647[label="",style="dashed", color="red", weight=0]; 10648[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10648 -> 10706[label="",style="dashed", color="magenta", weight=3]; 10649 -> 10647[label="",style="dashed", color="red", weight=0]; 10649[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10649 -> 10707[label="",style="dashed", color="magenta", weight=3]; 10650 -> 10647[label="",style="dashed", color="red", weight=0]; 10650[label="primMulNat vyv5860 vyv5850",fontsize=16,color="magenta"];10650 -> 10708[label="",style="dashed", color="magenta", weight=3]; 10650 -> 10709[label="",style="dashed", color="magenta", weight=3]; 10651[label="vyv5850",fontsize=16,color="green",shape="box"];10652[label="vyv5860",fontsize=16,color="green",shape="box"];10653 -> 10447[label="",style="dashed", color="red", weight=0]; 10653[label="vyv5860 * vyv5850",fontsize=16,color="magenta"];10653 -> 10710[label="",style="dashed", color="magenta", weight=3]; 10653 -> 10711[label="",style="dashed", color="magenta", weight=3]; 10654 -> 10447[label="",style="dashed", color="red", weight=0]; 10654[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10654 -> 10712[label="",style="dashed", color="magenta", weight=3]; 10654 -> 10713[label="",style="dashed", color="magenta", weight=3]; 10779[label="vyv627",fontsize=16,color="green",shape="box"];10780[label="vyv626",fontsize=16,color="green",shape="box"];10781[label="vyv625",fontsize=16,color="green",shape="box"];10782[label="vyv624",fontsize=16,color="green",shape="box"];10783[label="vyv625",fontsize=16,color="green",shape="box"];10784[label="vyv624",fontsize=16,color="green",shape="box"];10785[label="Integer vyv6300 `quot` reduce2D vyv632 vyv631",fontsize=16,color="black",shape="box"];10785 -> 10805[label="",style="solid", color="black", weight=3]; 10786[label="vyv625",fontsize=16,color="green",shape="box"];10787[label="vyv624",fontsize=16,color="green",shape="box"];10788[label="vyv627",fontsize=16,color="green",shape="box"];10789[label="vyv626",fontsize=16,color="green",shape="box"];10790[label="vyv625",fontsize=16,color="green",shape="box"];10791[label="vyv624",fontsize=16,color="green",shape="box"];10792[label="primQuotInt vyv633 (reduce2D vyv635 vyv634)",fontsize=16,color="burlywood",shape="box"];11807[label="vyv633/Pos vyv6330",fontsize=10,color="white",style="solid",shape="box"];10792 -> 11807[label="",style="solid", color="burlywood", weight=9]; 11807 -> 10806[label="",style="solid", color="burlywood", weight=3]; 11808[label="vyv633/Neg vyv6330",fontsize=10,color="white",style="solid",shape="box"];10792 -> 11808[label="",style="solid", color="burlywood", weight=9]; 11808 -> 10807[label="",style="solid", color="burlywood", weight=3]; 10793[label="vyv627",fontsize=16,color="green",shape="box"];10794[label="vyv626",fontsize=16,color="green",shape="box"];10795[label="vyv625",fontsize=16,color="green",shape="box"];10796[label="vyv624",fontsize=16,color="green",shape="box"];10797[label="vyv627",fontsize=16,color="green",shape="box"];10798[label="vyv626",fontsize=16,color="green",shape="box"];10799[label="vyv625",fontsize=16,color="green",shape="box"];10800[label="vyv624",fontsize=16,color="green",shape="box"];10801[label="vyv627",fontsize=16,color="green",shape="box"];10802[label="vyv626",fontsize=16,color="green",shape="box"];10803[label="vyv627",fontsize=16,color="green",shape="box"];10804[label="vyv626",fontsize=16,color="green",shape="box"];10655 -> 10647[label="",style="dashed", color="red", weight=0]; 10655[label="primMulNat vyv3020000 (Succ (Succ (Succ vyv3020000)))",fontsize=16,color="magenta"];10655 -> 10714[label="",style="dashed", color="magenta", weight=3]; 10655 -> 10715[label="",style="dashed", color="magenta", weight=3]; 10656[label="Succ (Succ (Succ vyv3020000))",fontsize=16,color="green",shape="box"];11385[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) (Succ vyv6790))",fontsize=16,color="black",shape="box"];11385 -> 11395[label="",style="solid", color="black", weight=3]; 11386[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS (Succ vyv6780) Zero)",fontsize=16,color="black",shape="box"];11386 -> 11396[label="",style="solid", color="black", weight=3]; 11387[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero (Succ vyv6790))",fontsize=16,color="black",shape="box"];11387 -> 11397[label="",style="solid", color="black", weight=3]; 11388[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11388 -> 11398[label="",style="solid", color="black", weight=3]; 11059[label="primMinusNatS (Succ vyv633000) Zero",fontsize=16,color="black",shape="triangle"];11059 -> 11076[label="",style="solid", color="black", weight=3]; 11060[label="Zero",fontsize=16,color="green",shape="box"];11061[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];11061 -> 11077[label="",style="solid", color="black", weight=3]; 11062[label="Zero",fontsize=16,color="green",shape="box"];10657[label="vyv60200",fontsize=16,color="green",shape="box"];10658[label="vyv599",fontsize=16,color="green",shape="box"];10670 -> 10565[label="",style="dashed", color="red", weight=0]; 10670[label="primMinusNat vyv5870 vyv603000",fontsize=16,color="magenta"];10670 -> 10718[label="",style="dashed", color="magenta", weight=3]; 10670 -> 10719[label="",style="dashed", color="magenta", weight=3]; 10671[label="Pos (Succ vyv5870)",fontsize=16,color="green",shape="box"];10672[label="Neg (Succ vyv603000)",fontsize=16,color="green",shape="box"];10673[label="Pos Zero",fontsize=16,color="green",shape="box"];10615[label="False",fontsize=16,color="green",shape="box"];10616[label="True",fontsize=16,color="green",shape="box"];10617[label="False",fontsize=16,color="green",shape="box"];10618[label="True",fontsize=16,color="green",shape="box"];10685[label="vyv5850",fontsize=16,color="green",shape="box"];10686[label="vyv5851",fontsize=16,color="green",shape="box"];10687[label="vyv5861",fontsize=16,color="green",shape="box"];10688[label="vyv5860",fontsize=16,color="green",shape="box"];10689[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];11809[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];10689 -> 11809[label="",style="solid", color="blue", weight=9]; 11809 -> 10720[label="",style="solid", color="blue", weight=3]; 11810[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];10689 -> 11810[label="",style="solid", color="blue", weight=9]; 11810 -> 10721[label="",style="solid", color="blue", weight=3]; 10700[label="vyv5850",fontsize=16,color="green",shape="box"];10701[label="vyv5860",fontsize=16,color="green",shape="box"];10702[label="vyv5851",fontsize=16,color="green",shape="box"];10703[label="vyv5861",fontsize=16,color="green",shape="box"];10704[label="primMulNat (Succ vyv58600) vyv5850",fontsize=16,color="burlywood",shape="box"];11811[label="vyv5850/Succ vyv58500",fontsize=10,color="white",style="solid",shape="box"];10704 -> 11811[label="",style="solid", color="burlywood", weight=9]; 11811 -> 10733[label="",style="solid", color="burlywood", weight=3]; 11812[label="vyv5850/Zero",fontsize=10,color="white",style="solid",shape="box"];10704 -> 11812[label="",style="solid", color="burlywood", weight=9]; 11812 -> 10734[label="",style="solid", color="burlywood", weight=3]; 10705[label="primMulNat Zero vyv5850",fontsize=16,color="burlywood",shape="box"];11813[label="vyv5850/Succ vyv58500",fontsize=10,color="white",style="solid",shape="box"];10705 -> 11813[label="",style="solid", color="burlywood", weight=9]; 11813 -> 10735[label="",style="solid", color="burlywood", weight=3]; 11814[label="vyv5850/Zero",fontsize=10,color="white",style="solid",shape="box"];10705 -> 11814[label="",style="solid", color="burlywood", weight=9]; 11814 -> 10736[label="",style="solid", color="burlywood", weight=3]; 10706[label="vyv5850",fontsize=16,color="green",shape="box"];10707[label="vyv5860",fontsize=16,color="green",shape="box"];10708[label="vyv5850",fontsize=16,color="green",shape="box"];10709[label="vyv5860",fontsize=16,color="green",shape="box"];10710[label="vyv5850",fontsize=16,color="green",shape="box"];10711[label="vyv5860",fontsize=16,color="green",shape="box"];10712[label="vyv5851",fontsize=16,color="green",shape="box"];10713[label="vyv5861",fontsize=16,color="green",shape="box"];10805 -> 10863[label="",style="dashed", color="red", weight=0]; 10805[label="Integer vyv6300 `quot` gcd vyv632 vyv631",fontsize=16,color="magenta"];10805 -> 10864[label="",style="dashed", color="magenta", weight=3]; 10806[label="primQuotInt (Pos vyv6330) (reduce2D vyv635 vyv634)",fontsize=16,color="black",shape="box"];10806 -> 10809[label="",style="solid", color="black", weight=3]; 10807[label="primQuotInt (Neg vyv6330) (reduce2D vyv635 vyv634)",fontsize=16,color="black",shape="box"];10807 -> 10810[label="",style="solid", color="black", weight=3]; 10714[label="Succ (Succ (Succ vyv3020000))",fontsize=16,color="green",shape="box"];10715[label="vyv3020000",fontsize=16,color="green",shape="box"];11395 -> 11340[label="",style="dashed", color="red", weight=0]; 11395[label="primDivNatS0 (Succ vyv676) (Succ vyv677) (primGEqNatS vyv6780 vyv6790)",fontsize=16,color="magenta"];11395 -> 11405[label="",style="dashed", color="magenta", weight=3]; 11395 -> 11406[label="",style="dashed", color="magenta", weight=3]; 11396[label="primDivNatS0 (Succ vyv676) (Succ vyv677) True",fontsize=16,color="black",shape="triangle"];11396 -> 11407[label="",style="solid", color="black", weight=3]; 11397[label="primDivNatS0 (Succ vyv676) (Succ vyv677) False",fontsize=16,color="black",shape="box"];11397 -> 11408[label="",style="solid", color="black", weight=3]; 11398 -> 11396[label="",style="dashed", color="red", weight=0]; 11398[label="primDivNatS0 (Succ vyv676) (Succ vyv677) True",fontsize=16,color="magenta"];11076[label="Succ vyv633000",fontsize=16,color="green",shape="box"];11077[label="Zero",fontsize=16,color="green",shape="box"];10718[label="vyv5870",fontsize=16,color="green",shape="box"];10719[label="vyv603000",fontsize=16,color="green",shape="box"];10720 -> 10331[label="",style="dashed", color="red", weight=0]; 10720[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10720 -> 10739[label="",style="dashed", color="magenta", weight=3]; 10721 -> 10724[label="",style="dashed", color="red", weight=0]; 10721[label="vyv5861 * vyv5851 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10721 -> 10726[label="",style="dashed", color="magenta", weight=3]; 10733[label="primMulNat (Succ vyv58600) (Succ vyv58500)",fontsize=16,color="black",shape="box"];10733 -> 10745[label="",style="solid", color="black", weight=3]; 10734[label="primMulNat (Succ vyv58600) Zero",fontsize=16,color="black",shape="box"];10734 -> 10746[label="",style="solid", color="black", weight=3]; 10735[label="primMulNat Zero (Succ vyv58500)",fontsize=16,color="black",shape="box"];10735 -> 10747[label="",style="solid", color="black", weight=3]; 10736[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];10736 -> 10748[label="",style="solid", color="black", weight=3]; 10864[label="gcd vyv632 vyv631",fontsize=16,color="black",shape="box"];10864 -> 10877[label="",style="solid", color="black", weight=3]; 10863[label="Integer vyv6300 `quot` vyv643",fontsize=16,color="burlywood",shape="triangle"];11815[label="vyv643/Integer vyv6430",fontsize=10,color="white",style="solid",shape="box"];10863 -> 11815[label="",style="solid", color="burlywood", weight=9]; 11815 -> 10878[label="",style="solid", color="burlywood", weight=3]; 10809 -> 10895[label="",style="dashed", color="red", weight=0]; 10809[label="primQuotInt (Pos vyv6330) (gcd vyv635 vyv634)",fontsize=16,color="magenta"];10809 -> 10904[label="",style="dashed", color="magenta", weight=3]; 10810[label="primQuotInt (Neg vyv6330) (gcd vyv635 vyv634)",fontsize=16,color="black",shape="box"];10810 -> 10813[label="",style="solid", color="black", weight=3]; 11405[label="vyv6790",fontsize=16,color="green",shape="box"];11406[label="vyv6780",fontsize=16,color="green",shape="box"];11407[label="Succ (primDivNatS (primMinusNatS (Succ vyv676) (Succ vyv677)) (Succ (Succ vyv677)))",fontsize=16,color="green",shape="box"];11407 -> 11417[label="",style="dashed", color="green", weight=3]; 11408[label="Zero",fontsize=16,color="green",shape="box"];10739 -> 10447[label="",style="dashed", color="red", weight=0]; 10739[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10739 -> 10750[label="",style="dashed", color="magenta", weight=3]; 10739 -> 10751[label="",style="dashed", color="magenta", weight=3]; 10726 -> 10448[label="",style="dashed", color="red", weight=0]; 10726[label="vyv5861 * vyv5851",fontsize=16,color="magenta"];10726 -> 10740[label="",style="dashed", color="magenta", weight=3]; 10726 -> 10741[label="",style="dashed", color="magenta", weight=3]; 10745 -> 94[label="",style="dashed", color="red", weight=0]; 10745[label="primPlusNat (primMulNat vyv58600 (Succ vyv58500)) (Succ vyv58500)",fontsize=16,color="magenta"];10745 -> 10754[label="",style="dashed", color="magenta", weight=3]; 10745 -> 10755[label="",style="dashed", color="magenta", weight=3]; 10746[label="Zero",fontsize=16,color="green",shape="box"];10747[label="Zero",fontsize=16,color="green",shape="box"];10748[label="Zero",fontsize=16,color="green",shape="box"];10877[label="gcd3 vyv632 vyv631",fontsize=16,color="black",shape="box"];10877 -> 10885[label="",style="solid", color="black", weight=3]; 10878[label="Integer vyv6300 `quot` Integer vyv6430",fontsize=16,color="black",shape="box"];10878 -> 10886[label="",style="solid", color="black", weight=3]; 10904[label="gcd vyv635 vyv634",fontsize=16,color="black",shape="box"];10904 -> 10920[label="",style="solid", color="black", weight=3]; 10813[label="primQuotInt (Neg vyv6330) (gcd3 vyv635 vyv634)",fontsize=16,color="black",shape="box"];10813 -> 10817[label="",style="solid", color="black", weight=3]; 11417 -> 10949[label="",style="dashed", color="red", weight=0]; 11417[label="primDivNatS (primMinusNatS (Succ vyv676) (Succ vyv677)) (Succ (Succ vyv677))",fontsize=16,color="magenta"];11417 -> 11423[label="",style="dashed", color="magenta", weight=3]; 11417 -> 11424[label="",style="dashed", color="magenta", weight=3]; 10750[label="vyv5851",fontsize=16,color="green",shape="box"];10751[label="vyv5861",fontsize=16,color="green",shape="box"];10740[label="vyv5851",fontsize=16,color="green",shape="box"];10741[label="vyv5861",fontsize=16,color="green",shape="box"];10754 -> 10647[label="",style="dashed", color="red", weight=0]; 10754[label="primMulNat vyv58600 (Succ vyv58500)",fontsize=16,color="magenta"];10754 -> 10759[label="",style="dashed", color="magenta", weight=3]; 10754 -> 10760[label="",style="dashed", color="magenta", weight=3]; 10755[label="Succ vyv58500",fontsize=16,color="green",shape="box"];10885 -> 10889[label="",style="dashed", color="red", weight=0]; 10885[label="gcd2 (vyv632 == fromInt (Pos Zero)) vyv632 vyv631",fontsize=16,color="magenta"];10885 -> 10890[label="",style="dashed", color="magenta", weight=3]; 10886[label="Integer (primQuotInt vyv6300 vyv6430)",fontsize=16,color="green",shape="box"];10886 -> 10891[label="",style="dashed", color="green", weight=3]; 10920[label="gcd3 vyv635 vyv634",fontsize=16,color="black",shape="box"];10920 -> 10935[label="",style="solid", color="black", weight=3]; 10817 -> 10823[label="",style="dashed", color="red", weight=0]; 10817[label="primQuotInt (Neg vyv6330) (gcd2 (vyv635 == fromInt (Pos Zero)) vyv635 vyv634)",fontsize=16,color="magenta"];10817 -> 10824[label="",style="dashed", color="magenta", weight=3]; 11423[label="primMinusNatS (Succ vyv676) (Succ vyv677)",fontsize=16,color="black",shape="box"];11423 -> 11430[label="",style="solid", color="black", weight=3]; 11424[label="Succ vyv677",fontsize=16,color="green",shape="box"];10759[label="Succ vyv58500",fontsize=16,color="green",shape="box"];10760[label="vyv58600",fontsize=16,color="green",shape="box"];10890 -> 10724[label="",style="dashed", color="red", weight=0]; 10890[label="vyv632 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10890 -> 10892[label="",style="dashed", color="magenta", weight=3]; 10889[label="gcd2 vyv645 vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11816[label="vyv645/False",fontsize=10,color="white",style="solid",shape="box"];10889 -> 11816[label="",style="solid", color="burlywood", weight=9]; 11816 -> 10893[label="",style="solid", color="burlywood", weight=3]; 11817[label="vyv645/True",fontsize=10,color="white",style="solid",shape="box"];10889 -> 11817[label="",style="solid", color="burlywood", weight=9]; 11817 -> 10894[label="",style="solid", color="burlywood", weight=3]; 10891[label="primQuotInt vyv6300 vyv6430",fontsize=16,color="burlywood",shape="triangle"];11818[label="vyv6300/Pos vyv63000",fontsize=10,color="white",style="solid",shape="box"];10891 -> 11818[label="",style="solid", color="burlywood", weight=9]; 11818 -> 10921[label="",style="solid", color="burlywood", weight=3]; 11819[label="vyv6300/Neg vyv63000",fontsize=10,color="white",style="solid",shape="box"];10891 -> 11819[label="",style="solid", color="burlywood", weight=9]; 11819 -> 10922[label="",style="solid", color="burlywood", weight=3]; 10935 -> 10947[label="",style="dashed", color="red", weight=0]; 10935[label="gcd2 (vyv635 == fromInt (Pos Zero)) vyv635 vyv634",fontsize=16,color="magenta"];10935 -> 10948[label="",style="dashed", color="magenta", weight=3]; 10824 -> 10331[label="",style="dashed", color="red", weight=0]; 10824[label="vyv635 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10824 -> 10830[label="",style="dashed", color="magenta", weight=3]; 10823[label="primQuotInt (Neg vyv6330) (gcd2 vyv638 vyv635 vyv634)",fontsize=16,color="burlywood",shape="triangle"];11820[label="vyv638/False",fontsize=10,color="white",style="solid",shape="box"];10823 -> 11820[label="",style="solid", color="burlywood", weight=9]; 11820 -> 10831[label="",style="solid", color="burlywood", weight=3]; 11821[label="vyv638/True",fontsize=10,color="white",style="solid",shape="box"];10823 -> 11821[label="",style="solid", color="burlywood", weight=9]; 11821 -> 10832[label="",style="solid", color="burlywood", weight=3]; 11430[label="primMinusNatS vyv676 vyv677",fontsize=16,color="burlywood",shape="triangle"];11822[label="vyv676/Succ vyv6760",fontsize=10,color="white",style="solid",shape="box"];11430 -> 11822[label="",style="solid", color="burlywood", weight=9]; 11822 -> 11439[label="",style="solid", color="burlywood", weight=3]; 11823[label="vyv676/Zero",fontsize=10,color="white",style="solid",shape="box"];11430 -> 11823[label="",style="solid", color="burlywood", weight=9]; 11823 -> 11440[label="",style="solid", color="burlywood", weight=3]; 10892[label="vyv632",fontsize=16,color="green",shape="box"];10893[label="gcd2 False vyv632 vyv631",fontsize=16,color="black",shape="box"];10893 -> 10923[label="",style="solid", color="black", weight=3]; 10894[label="gcd2 True vyv632 vyv631",fontsize=16,color="black",shape="box"];10894 -> 10924[label="",style="solid", color="black", weight=3]; 10921[label="primQuotInt (Pos vyv63000) vyv6430",fontsize=16,color="burlywood",shape="box"];11824[label="vyv6430/Pos vyv64300",fontsize=10,color="white",style="solid",shape="box"];10921 -> 11824[label="",style="solid", color="burlywood", weight=9]; 11824 -> 10936[label="",style="solid", color="burlywood", weight=3]; 11825[label="vyv6430/Neg vyv64300",fontsize=10,color="white",style="solid",shape="box"];10921 -> 11825[label="",style="solid", color="burlywood", weight=9]; 11825 -> 10937[label="",style="solid", color="burlywood", weight=3]; 10922[label="primQuotInt (Neg vyv63000) vyv6430",fontsize=16,color="burlywood",shape="box"];11826[label="vyv6430/Pos vyv64300",fontsize=10,color="white",style="solid",shape="box"];10922 -> 11826[label="",style="solid", color="burlywood", weight=9]; 11826 -> 10938[label="",style="solid", color="burlywood", weight=3]; 11827[label="vyv6430/Neg vyv64300",fontsize=10,color="white",style="solid",shape="box"];10922 -> 11827[label="",style="solid", color="burlywood", weight=9]; 11827 -> 10939[label="",style="solid", color="burlywood", weight=3]; 10948 -> 10331[label="",style="dashed", color="red", weight=0]; 10948[label="vyv635 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10948 -> 10951[label="",style="dashed", color="magenta", weight=3]; 10947[label="gcd2 vyv648 vyv635 vyv634",fontsize=16,color="burlywood",shape="triangle"];11828[label="vyv648/False",fontsize=10,color="white",style="solid",shape="box"];10947 -> 11828[label="",style="solid", color="burlywood", weight=9]; 11828 -> 10952[label="",style="solid", color="burlywood", weight=3]; 11829[label="vyv648/True",fontsize=10,color="white",style="solid",shape="box"];10947 -> 11829[label="",style="solid", color="burlywood", weight=9]; 11829 -> 10953[label="",style="solid", color="burlywood", weight=3]; 10830[label="vyv635",fontsize=16,color="green",shape="box"];10831[label="primQuotInt (Neg vyv6330) (gcd2 False vyv635 vyv634)",fontsize=16,color="black",shape="box"];10831 -> 10838[label="",style="solid", color="black", weight=3]; 10832[label="primQuotInt (Neg vyv6330) (gcd2 True vyv635 vyv634)",fontsize=16,color="black",shape="box"];10832 -> 10839[label="",style="solid", color="black", weight=3]; 11439[label="primMinusNatS (Succ vyv6760) vyv677",fontsize=16,color="burlywood",shape="box"];11830[label="vyv677/Succ vyv6770",fontsize=10,color="white",style="solid",shape="box"];11439 -> 11830[label="",style="solid", color="burlywood", weight=9]; 11830 -> 11449[label="",style="solid", color="burlywood", weight=3]; 11831[label="vyv677/Zero",fontsize=10,color="white",style="solid",shape="box"];11439 -> 11831[label="",style="solid", color="burlywood", weight=9]; 11831 -> 11450[label="",style="solid", color="burlywood", weight=3]; 11440[label="primMinusNatS Zero vyv677",fontsize=16,color="burlywood",shape="box"];11832[label="vyv677/Succ vyv6770",fontsize=10,color="white",style="solid",shape="box"];11440 -> 11832[label="",style="solid", color="burlywood", weight=9]; 11832 -> 11451[label="",style="solid", color="burlywood", weight=3]; 11833[label="vyv677/Zero",fontsize=10,color="white",style="solid",shape="box"];11440 -> 11833[label="",style="solid", color="burlywood", weight=9]; 11833 -> 11452[label="",style="solid", color="burlywood", weight=3]; 10923[label="gcd0 vyv632 vyv631",fontsize=16,color="black",shape="triangle"];10923 -> 10940[label="",style="solid", color="black", weight=3]; 10924 -> 10941[label="",style="dashed", color="red", weight=0]; 10924[label="gcd1 (vyv631 == fromInt (Pos Zero)) vyv632 vyv631",fontsize=16,color="magenta"];10924 -> 10942[label="",style="dashed", color="magenta", weight=3]; 10936[label="primQuotInt (Pos vyv63000) (Pos vyv64300)",fontsize=16,color="burlywood",shape="box"];11834[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10936 -> 11834[label="",style="solid", color="burlywood", weight=9]; 11834 -> 10954[label="",style="solid", color="burlywood", weight=3]; 11835[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10936 -> 11835[label="",style="solid", color="burlywood", weight=9]; 11835 -> 10955[label="",style="solid", color="burlywood", weight=3]; 10937[label="primQuotInt (Pos vyv63000) (Neg vyv64300)",fontsize=16,color="burlywood",shape="box"];11836[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10937 -> 11836[label="",style="solid", color="burlywood", weight=9]; 11836 -> 10956[label="",style="solid", color="burlywood", weight=3]; 11837[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10937 -> 11837[label="",style="solid", color="burlywood", weight=9]; 11837 -> 10957[label="",style="solid", color="burlywood", weight=3]; 10938[label="primQuotInt (Neg vyv63000) (Pos vyv64300)",fontsize=16,color="burlywood",shape="box"];11838[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10938 -> 11838[label="",style="solid", color="burlywood", weight=9]; 11838 -> 10958[label="",style="solid", color="burlywood", weight=3]; 11839[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10938 -> 11839[label="",style="solid", color="burlywood", weight=9]; 11839 -> 10959[label="",style="solid", color="burlywood", weight=3]; 10939[label="primQuotInt (Neg vyv63000) (Neg vyv64300)",fontsize=16,color="burlywood",shape="box"];11840[label="vyv64300/Succ vyv643000",fontsize=10,color="white",style="solid",shape="box"];10939 -> 11840[label="",style="solid", color="burlywood", weight=9]; 11840 -> 10960[label="",style="solid", color="burlywood", weight=3]; 11841[label="vyv64300/Zero",fontsize=10,color="white",style="solid",shape="box"];10939 -> 11841[label="",style="solid", color="burlywood", weight=9]; 11841 -> 10961[label="",style="solid", color="burlywood", weight=3]; 10951[label="vyv635",fontsize=16,color="green",shape="box"];10952[label="gcd2 False vyv635 vyv634",fontsize=16,color="black",shape="box"];10952 -> 10971[label="",style="solid", color="black", weight=3]; 10953[label="gcd2 True vyv635 vyv634",fontsize=16,color="black",shape="box"];10953 -> 10972[label="",style="solid", color="black", weight=3]; 10838[label="primQuotInt (Neg vyv6330) (gcd0 vyv635 vyv634)",fontsize=16,color="black",shape="box"];10838 -> 10847[label="",style="solid", color="black", weight=3]; 10839 -> 10848[label="",style="dashed", color="red", weight=0]; 10839[label="primQuotInt (Neg vyv6330) (gcd1 (vyv634 == fromInt (Pos Zero)) vyv635 vyv634)",fontsize=16,color="magenta"];10839 -> 10849[label="",style="dashed", color="magenta", weight=3]; 11449[label="primMinusNatS (Succ vyv6760) (Succ vyv6770)",fontsize=16,color="black",shape="box"];11449 -> 11458[label="",style="solid", color="black", weight=3]; 11450[label="primMinusNatS (Succ vyv6760) Zero",fontsize=16,color="black",shape="box"];11450 -> 11459[label="",style="solid", color="black", weight=3]; 11451[label="primMinusNatS Zero (Succ vyv6770)",fontsize=16,color="black",shape="box"];11451 -> 11460[label="",style="solid", color="black", weight=3]; 11452[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];11452 -> 11461[label="",style="solid", color="black", weight=3]; 10940[label="gcd0Gcd' (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];10940 -> 10962[label="",style="solid", color="black", weight=3]; 10942 -> 10724[label="",style="dashed", color="red", weight=0]; 10942[label="vyv631 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10942 -> 10963[label="",style="dashed", color="magenta", weight=3]; 10941[label="gcd1 vyv647 vyv632 vyv631",fontsize=16,color="burlywood",shape="triangle"];11842[label="vyv647/False",fontsize=10,color="white",style="solid",shape="box"];10941 -> 11842[label="",style="solid", color="burlywood", weight=9]; 11842 -> 10964[label="",style="solid", color="burlywood", weight=3]; 11843[label="vyv647/True",fontsize=10,color="white",style="solid",shape="box"];10941 -> 11843[label="",style="solid", color="burlywood", weight=9]; 11843 -> 10965[label="",style="solid", color="burlywood", weight=3]; 10954[label="primQuotInt (Pos vyv63000) (Pos (Succ vyv643000))",fontsize=16,color="black",shape="box"];10954 -> 10973[label="",style="solid", color="black", weight=3]; 10955[label="primQuotInt (Pos vyv63000) (Pos Zero)",fontsize=16,color="black",shape="box"];10955 -> 10974[label="",style="solid", color="black", weight=3]; 10956[label="primQuotInt (Pos vyv63000) (Neg (Succ vyv643000))",fontsize=16,color="black",shape="box"];10956 -> 10975[label="",style="solid", color="black", weight=3]; 10957[label="primQuotInt (Pos vyv63000) (Neg Zero)",fontsize=16,color="black",shape="box"];10957 -> 10976[label="",style="solid", color="black", weight=3]; 10958[label="primQuotInt (Neg vyv63000) (Pos (Succ vyv643000))",fontsize=16,color="black",shape="box"];10958 -> 10977[label="",style="solid", color="black", weight=3]; 10959[label="primQuotInt (Neg vyv63000) (Pos Zero)",fontsize=16,color="black",shape="box"];10959 -> 10978[label="",style="solid", color="black", weight=3]; 10960[label="primQuotInt (Neg vyv63000) (Neg (Succ vyv643000))",fontsize=16,color="black",shape="box"];10960 -> 10979[label="",style="solid", color="black", weight=3]; 10961[label="primQuotInt (Neg vyv63000) (Neg Zero)",fontsize=16,color="black",shape="box"];10961 -> 10980[label="",style="solid", color="black", weight=3]; 10971 -> 10928[label="",style="dashed", color="red", weight=0]; 10971[label="gcd0 vyv635 vyv634",fontsize=16,color="magenta"];10972 -> 10990[label="",style="dashed", color="red", weight=0]; 10972[label="gcd1 (vyv634 == fromInt (Pos Zero)) vyv635 vyv634",fontsize=16,color="magenta"];10972 -> 10991[label="",style="dashed", color="magenta", weight=3]; 10847[label="primQuotInt (Neg vyv6330) (gcd0Gcd' (abs vyv635) (abs vyv634))",fontsize=16,color="black",shape="box"];10847 -> 10857[label="",style="solid", color="black", weight=3]; 10849 -> 10331[label="",style="dashed", color="red", weight=0]; 10849[label="vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10849 -> 10858[label="",style="dashed", color="magenta", weight=3]; 10848[label="primQuotInt (Neg vyv6330) (gcd1 vyv641 vyv635 vyv634)",fontsize=16,color="burlywood",shape="triangle"];11844[label="vyv641/False",fontsize=10,color="white",style="solid",shape="box"];10848 -> 11844[label="",style="solid", color="burlywood", weight=9]; 11844 -> 10859[label="",style="solid", color="burlywood", weight=3]; 11845[label="vyv641/True",fontsize=10,color="white",style="solid",shape="box"];10848 -> 11845[label="",style="solid", color="burlywood", weight=9]; 11845 -> 10860[label="",style="solid", color="burlywood", weight=3]; 11458 -> 11430[label="",style="dashed", color="red", weight=0]; 11458[label="primMinusNatS vyv6760 vyv6770",fontsize=16,color="magenta"];11458 -> 11470[label="",style="dashed", color="magenta", weight=3]; 11458 -> 11471[label="",style="dashed", color="magenta", weight=3]; 11459[label="Succ vyv6760",fontsize=16,color="green",shape="box"];11460[label="Zero",fontsize=16,color="green",shape="box"];11461[label="Zero",fontsize=16,color="green",shape="box"];10962[label="gcd0Gcd'2 (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];10962 -> 10981[label="",style="solid", color="black", weight=3]; 10963[label="vyv631",fontsize=16,color="green",shape="box"];10964[label="gcd1 False vyv632 vyv631",fontsize=16,color="black",shape="box"];10964 -> 10982[label="",style="solid", color="black", weight=3]; 10965[label="gcd1 True vyv632 vyv631",fontsize=16,color="black",shape="box"];10965 -> 10983[label="",style="solid", color="black", weight=3]; 10973[label="Pos (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10973 -> 10994[label="",style="dashed", color="green", weight=3]; 10974 -> 65[label="",style="dashed", color="red", weight=0]; 10974[label="error []",fontsize=16,color="magenta"];10975[label="Neg (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10975 -> 10995[label="",style="dashed", color="green", weight=3]; 10976 -> 65[label="",style="dashed", color="red", weight=0]; 10976[label="error []",fontsize=16,color="magenta"];10977[label="Neg (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10977 -> 10996[label="",style="dashed", color="green", weight=3]; 10978 -> 65[label="",style="dashed", color="red", weight=0]; 10978[label="error []",fontsize=16,color="magenta"];10979[label="Pos (primDivNatS vyv63000 (Succ vyv643000))",fontsize=16,color="green",shape="box"];10979 -> 10997[label="",style="dashed", color="green", weight=3]; 10980 -> 65[label="",style="dashed", color="red", weight=0]; 10980[label="error []",fontsize=16,color="magenta"];10928[label="gcd0 vyv635 vyv634",fontsize=16,color="black",shape="triangle"];10928 -> 10984[label="",style="solid", color="black", weight=3]; 10991 -> 10331[label="",style="dashed", color="red", weight=0]; 10991[label="vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];10991 -> 10998[label="",style="dashed", color="magenta", weight=3]; 10990[label="gcd1 vyv650 vyv635 vyv634",fontsize=16,color="burlywood",shape="triangle"];11846[label="vyv650/False",fontsize=10,color="white",style="solid",shape="box"];10990 -> 11846[label="",style="solid", color="burlywood", weight=9]; 11846 -> 10999[label="",style="solid", color="burlywood", weight=3]; 11847[label="vyv650/True",fontsize=10,color="white",style="solid",shape="box"];10990 -> 11847[label="",style="solid", color="burlywood", weight=9]; 11847 -> 11000[label="",style="solid", color="burlywood", weight=3]; 10857[label="primQuotInt (Neg vyv6330) (gcd0Gcd'2 (abs vyv635) (abs vyv634))",fontsize=16,color="black",shape="box"];10857 -> 10882[label="",style="solid", color="black", weight=3]; 10858[label="vyv634",fontsize=16,color="green",shape="box"];10859[label="primQuotInt (Neg vyv6330) (gcd1 False vyv635 vyv634)",fontsize=16,color="black",shape="box"];10859 -> 10883[label="",style="solid", color="black", weight=3]; 10860[label="primQuotInt (Neg vyv6330) (gcd1 True vyv635 vyv634)",fontsize=16,color="black",shape="box"];10860 -> 10884[label="",style="solid", color="black", weight=3]; 11470[label="vyv6770",fontsize=16,color="green",shape="box"];11471[label="vyv6760",fontsize=16,color="green",shape="box"];10981 -> 11001[label="",style="dashed", color="red", weight=0]; 10981[label="gcd0Gcd'1 (abs vyv631 == fromInt (Pos Zero)) (abs vyv632) (abs vyv631)",fontsize=16,color="magenta"];10981 -> 11002[label="",style="dashed", color="magenta", weight=3]; 10982 -> 10923[label="",style="dashed", color="red", weight=0]; 10982[label="gcd0 vyv632 vyv631",fontsize=16,color="magenta"];10983 -> 65[label="",style="dashed", color="red", weight=0]; 10983[label="error []",fontsize=16,color="magenta"];10994 -> 10949[label="",style="dashed", color="red", weight=0]; 10994[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10994 -> 11007[label="",style="dashed", color="magenta", weight=3]; 10994 -> 11008[label="",style="dashed", color="magenta", weight=3]; 10995 -> 10949[label="",style="dashed", color="red", weight=0]; 10995[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10995 -> 11009[label="",style="dashed", color="magenta", weight=3]; 10995 -> 11010[label="",style="dashed", color="magenta", weight=3]; 10996 -> 10949[label="",style="dashed", color="red", weight=0]; 10996[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10996 -> 11011[label="",style="dashed", color="magenta", weight=3]; 10996 -> 11012[label="",style="dashed", color="magenta", weight=3]; 10997 -> 10949[label="",style="dashed", color="red", weight=0]; 10997[label="primDivNatS vyv63000 (Succ vyv643000)",fontsize=16,color="magenta"];10997 -> 11013[label="",style="dashed", color="magenta", weight=3]; 10997 -> 11014[label="",style="dashed", color="magenta", weight=3]; 10984[label="gcd0Gcd' (abs vyv635) (abs vyv634)",fontsize=16,color="black",shape="box"];10984 -> 11015[label="",style="solid", color="black", weight=3]; 10998[label="vyv634",fontsize=16,color="green",shape="box"];10999[label="gcd1 False vyv635 vyv634",fontsize=16,color="black",shape="box"];10999 -> 11016[label="",style="solid", color="black", weight=3]; 11000[label="gcd1 True vyv635 vyv634",fontsize=16,color="black",shape="box"];11000 -> 11017[label="",style="solid", color="black", weight=3]; 10882 -> 10891[label="",style="dashed", color="red", weight=0]; 10882[label="primQuotInt (Neg vyv6330) (gcd0Gcd'1 (abs vyv634 == fromInt (Pos Zero)) (abs vyv635) (abs vyv634))",fontsize=16,color="magenta"];10882 -> 10925[label="",style="dashed", color="magenta", weight=3]; 10882 -> 10926[label="",style="dashed", color="magenta", weight=3]; 10883 -> 10891[label="",style="dashed", color="red", weight=0]; 10883[label="primQuotInt (Neg vyv6330) (gcd0 vyv635 vyv634)",fontsize=16,color="magenta"];10883 -> 10927[label="",style="dashed", color="magenta", weight=3]; 10883 -> 10928[label="",style="dashed", color="magenta", weight=3]; 10884 -> 10891[label="",style="dashed", color="red", weight=0]; 10884[label="primQuotInt (Neg vyv6330) (error [])",fontsize=16,color="magenta"];10884 -> 10929[label="",style="dashed", color="magenta", weight=3]; 10884 -> 10930[label="",style="dashed", color="magenta", weight=3]; 11002 -> 10724[label="",style="dashed", color="red", weight=0]; 11002[label="abs vyv631 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11002 -> 11018[label="",style="dashed", color="magenta", weight=3]; 11001[label="gcd0Gcd'1 vyv651 (abs vyv632) (abs vyv631)",fontsize=16,color="burlywood",shape="triangle"];11848[label="vyv651/False",fontsize=10,color="white",style="solid",shape="box"];11001 -> 11848[label="",style="solid", color="burlywood", weight=9]; 11848 -> 11019[label="",style="solid", color="burlywood", weight=3]; 11849[label="vyv651/True",fontsize=10,color="white",style="solid",shape="box"];11001 -> 11849[label="",style="solid", color="burlywood", weight=9]; 11849 -> 11020[label="",style="solid", color="burlywood", weight=3]; 11007[label="vyv63000",fontsize=16,color="green",shape="box"];11008[label="vyv643000",fontsize=16,color="green",shape="box"];11009[label="vyv63000",fontsize=16,color="green",shape="box"];11010[label="vyv643000",fontsize=16,color="green",shape="box"];11011[label="vyv63000",fontsize=16,color="green",shape="box"];11012[label="vyv643000",fontsize=16,color="green",shape="box"];11013[label="vyv63000",fontsize=16,color="green",shape="box"];11014[label="vyv643000",fontsize=16,color="green",shape="box"];11015 -> 11028[label="",style="dashed", color="red", weight=0]; 11015[label="gcd0Gcd'2 (abs vyv635) (abs vyv634)",fontsize=16,color="magenta"];11015 -> 11029[label="",style="dashed", color="magenta", weight=3]; 11015 -> 11030[label="",style="dashed", color="magenta", weight=3]; 11016 -> 10928[label="",style="dashed", color="red", weight=0]; 11016[label="gcd0 vyv635 vyv634",fontsize=16,color="magenta"];11017 -> 65[label="",style="dashed", color="red", weight=0]; 11017[label="error []",fontsize=16,color="magenta"];10925[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10926 -> 11064[label="",style="dashed", color="red", weight=0]; 10926[label="gcd0Gcd'1 (abs vyv634 == fromInt (Pos Zero)) (abs vyv635) (abs vyv634)",fontsize=16,color="magenta"];10926 -> 11065[label="",style="dashed", color="magenta", weight=3]; 10926 -> 11066[label="",style="dashed", color="magenta", weight=3]; 10926 -> 11067[label="",style="dashed", color="magenta", weight=3]; 10927[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10929[label="Neg vyv6330",fontsize=16,color="green",shape="box"];10930 -> 65[label="",style="dashed", color="red", weight=0]; 10930[label="error []",fontsize=16,color="magenta"];11018[label="abs vyv631",fontsize=16,color="black",shape="triangle"];11018 -> 11036[label="",style="solid", color="black", weight=3]; 11019[label="gcd0Gcd'1 False (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];11019 -> 11037[label="",style="solid", color="black", weight=3]; 11020[label="gcd0Gcd'1 True (abs vyv632) (abs vyv631)",fontsize=16,color="black",shape="box"];11020 -> 11038[label="",style="solid", color="black", weight=3]; 11029 -> 10985[label="",style="dashed", color="red", weight=0]; 11029[label="abs vyv634",fontsize=16,color="magenta"];11030 -> 10985[label="",style="dashed", color="red", weight=0]; 11030[label="abs vyv635",fontsize=16,color="magenta"];11030 -> 11039[label="",style="dashed", color="magenta", weight=3]; 11028[label="gcd0Gcd'2 vyv653 vyv652",fontsize=16,color="black",shape="triangle"];11028 -> 11040[label="",style="solid", color="black", weight=3]; 11065 -> 10985[label="",style="dashed", color="red", weight=0]; 11065[label="abs vyv634",fontsize=16,color="magenta"];11066 -> 10331[label="",style="dashed", color="red", weight=0]; 11066[label="abs vyv634 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11066 -> 11078[label="",style="dashed", color="magenta", weight=3]; 11067 -> 10985[label="",style="dashed", color="red", weight=0]; 11067[label="abs vyv635",fontsize=16,color="magenta"];11067 -> 11079[label="",style="dashed", color="magenta", weight=3]; 11064[label="gcd0Gcd'1 vyv658 vyv653 vyv652",fontsize=16,color="burlywood",shape="triangle"];11850[label="vyv658/False",fontsize=10,color="white",style="solid",shape="box"];11064 -> 11850[label="",style="solid", color="burlywood", weight=9]; 11850 -> 11080[label="",style="solid", color="burlywood", weight=3]; 11851[label="vyv658/True",fontsize=10,color="white",style="solid",shape="box"];11064 -> 11851[label="",style="solid", color="burlywood", weight=9]; 11851 -> 11081[label="",style="solid", color="burlywood", weight=3]; 11036[label="absReal vyv631",fontsize=16,color="black",shape="box"];11036 -> 11051[label="",style="solid", color="black", weight=3]; 11037 -> 11052[label="",style="dashed", color="red", weight=0]; 11037[label="gcd0Gcd'0 (abs vyv632) (abs vyv631)",fontsize=16,color="magenta"];11037 -> 11053[label="",style="dashed", color="magenta", weight=3]; 11037 -> 11054[label="",style="dashed", color="magenta", weight=3]; 11038 -> 11018[label="",style="dashed", color="red", weight=0]; 11038[label="abs vyv632",fontsize=16,color="magenta"];11038 -> 11063[label="",style="dashed", color="magenta", weight=3]; 10985[label="abs vyv634",fontsize=16,color="black",shape="triangle"];10985 -> 11021[label="",style="solid", color="black", weight=3]; 11039[label="vyv635",fontsize=16,color="green",shape="box"];11040 -> 11064[label="",style="dashed", color="red", weight=0]; 11040[label="gcd0Gcd'1 (vyv652 == fromInt (Pos Zero)) vyv653 vyv652",fontsize=16,color="magenta"];11040 -> 11071[label="",style="dashed", color="magenta", weight=3]; 11078 -> 10985[label="",style="dashed", color="red", weight=0]; 11078[label="abs vyv634",fontsize=16,color="magenta"];11079[label="vyv635",fontsize=16,color="green",shape="box"];11080[label="gcd0Gcd'1 False vyv653 vyv652",fontsize=16,color="black",shape="box"];11080 -> 11091[label="",style="solid", color="black", weight=3]; 11081[label="gcd0Gcd'1 True vyv653 vyv652",fontsize=16,color="black",shape="box"];11081 -> 11092[label="",style="solid", color="black", weight=3]; 11051[label="absReal2 vyv631",fontsize=16,color="black",shape="box"];11051 -> 11082[label="",style="solid", color="black", weight=3]; 11053 -> 11018[label="",style="dashed", color="red", weight=0]; 11053[label="abs vyv632",fontsize=16,color="magenta"];11053 -> 11083[label="",style="dashed", color="magenta", weight=3]; 11054 -> 11018[label="",style="dashed", color="red", weight=0]; 11054[label="abs vyv631",fontsize=16,color="magenta"];11052[label="gcd0Gcd'0 vyv657 vyv656",fontsize=16,color="black",shape="triangle"];11052 -> 11084[label="",style="solid", color="black", weight=3]; 11063[label="vyv632",fontsize=16,color="green",shape="box"];11021[label="absReal vyv634",fontsize=16,color="black",shape="box"];11021 -> 11041[label="",style="solid", color="black", weight=3]; 11071 -> 10331[label="",style="dashed", color="red", weight=0]; 11071[label="vyv652 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11071 -> 11085[label="",style="dashed", color="magenta", weight=3]; 11091[label="gcd0Gcd'0 vyv653 vyv652",fontsize=16,color="black",shape="box"];11091 -> 11100[label="",style="solid", color="black", weight=3]; 11092[label="vyv653",fontsize=16,color="green",shape="box"];11082[label="absReal1 vyv631 (vyv631 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];11082 -> 11093[label="",style="solid", color="black", weight=3]; 11083[label="vyv632",fontsize=16,color="green",shape="box"];11084[label="gcd0Gcd' vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11084 -> 11094[label="",style="solid", color="black", weight=3]; 11041[label="absReal2 vyv634",fontsize=16,color="black",shape="box"];11041 -> 11086[label="",style="solid", color="black", weight=3]; 11085[label="vyv652",fontsize=16,color="green",shape="box"];11100[label="gcd0Gcd' vyv652 (vyv653 `rem` vyv652)",fontsize=16,color="black",shape="box"];11100 -> 11109[label="",style="solid", color="black", weight=3]; 11093[label="absReal1 vyv631 (compare vyv631 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];11093 -> 11101[label="",style="solid", color="black", weight=3]; 11094[label="gcd0Gcd'2 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11094 -> 11102[label="",style="solid", color="black", weight=3]; 11086[label="absReal1 vyv634 (vyv634 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];11086 -> 11095[label="",style="solid", color="black", weight=3]; 11109 -> 11028[label="",style="dashed", color="red", weight=0]; 11109[label="gcd0Gcd'2 vyv652 (vyv653 `rem` vyv652)",fontsize=16,color="magenta"];11109 -> 11119[label="",style="dashed", color="magenta", weight=3]; 11109 -> 11120[label="",style="dashed", color="magenta", weight=3]; 11101[label="absReal1 vyv631 (not (compare vyv631 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11852[label="vyv631/Integer vyv6310",fontsize=10,color="white",style="solid",shape="box"];11101 -> 11852[label="",style="solid", color="burlywood", weight=9]; 11852 -> 11110[label="",style="solid", color="burlywood", weight=3]; 11102 -> 11111[label="",style="dashed", color="red", weight=0]; 11102[label="gcd0Gcd'1 (vyv657 `rem` vyv656 == fromInt (Pos Zero)) vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="magenta"];11102 -> 11112[label="",style="dashed", color="magenta", weight=3]; 11095[label="absReal1 vyv634 (compare vyv634 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];11095 -> 11103[label="",style="solid", color="black", weight=3]; 11119[label="vyv653 `rem` vyv652",fontsize=16,color="black",shape="box"];11119 -> 11134[label="",style="solid", color="black", weight=3]; 11120[label="vyv652",fontsize=16,color="green",shape="box"];11110[label="absReal1 (Integer vyv6310) (not (compare (Integer vyv6310) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11110 -> 11121[label="",style="solid", color="black", weight=3]; 11112 -> 10724[label="",style="dashed", color="red", weight=0]; 11112[label="vyv657 `rem` vyv656 == fromInt (Pos Zero)",fontsize=16,color="magenta"];11112 -> 11122[label="",style="dashed", color="magenta", weight=3]; 11111[label="gcd0Gcd'1 vyv659 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="burlywood",shape="triangle"];11853[label="vyv659/False",fontsize=10,color="white",style="solid",shape="box"];11111 -> 11853[label="",style="solid", color="burlywood", weight=9]; 11853 -> 11123[label="",style="solid", color="burlywood", weight=3]; 11854[label="vyv659/True",fontsize=10,color="white",style="solid",shape="box"];11111 -> 11854[label="",style="solid", color="burlywood", weight=9]; 11854 -> 11124[label="",style="solid", color="burlywood", weight=3]; 11103[label="absReal1 vyv634 (not (compare vyv634 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11103 -> 11125[label="",style="solid", color="black", weight=3]; 11134[label="primRemInt vyv653 vyv652",fontsize=16,color="burlywood",shape="triangle"];11855[label="vyv653/Pos vyv6530",fontsize=10,color="white",style="solid",shape="box"];11134 -> 11855[label="",style="solid", color="burlywood", weight=9]; 11855 -> 11148[label="",style="solid", color="burlywood", weight=3]; 11856[label="vyv653/Neg vyv6530",fontsize=10,color="white",style="solid",shape="box"];11134 -> 11856[label="",style="solid", color="burlywood", weight=9]; 11856 -> 11149[label="",style="solid", color="burlywood", weight=3]; 11121[label="absReal1 (Integer vyv6310) (not (compare (Integer vyv6310) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11121 -> 11135[label="",style="solid", color="black", weight=3]; 11122[label="vyv657 `rem` vyv656",fontsize=16,color="burlywood",shape="triangle"];11857[label="vyv657/Integer vyv6570",fontsize=10,color="white",style="solid",shape="box"];11122 -> 11857[label="",style="solid", color="burlywood", weight=9]; 11857 -> 11136[label="",style="solid", color="burlywood", weight=3]; 11123[label="gcd0Gcd'1 False vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11123 -> 11137[label="",style="solid", color="black", weight=3]; 11124[label="gcd0Gcd'1 True vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="black",shape="box"];11124 -> 11138[label="",style="solid", color="black", weight=3]; 11125[label="absReal1 vyv634 (not (primCmpInt vyv634 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11858[label="vyv634/Pos vyv6340",fontsize=10,color="white",style="solid",shape="box"];11125 -> 11858[label="",style="solid", color="burlywood", weight=9]; 11858 -> 11139[label="",style="solid", color="burlywood", weight=3]; 11859[label="vyv634/Neg vyv6340",fontsize=10,color="white",style="solid",shape="box"];11125 -> 11859[label="",style="solid", color="burlywood", weight=9]; 11859 -> 11140[label="",style="solid", color="burlywood", weight=3]; 11148[label="primRemInt (Pos vyv6530) vyv652",fontsize=16,color="burlywood",shape="box"];11860[label="vyv652/Pos vyv6520",fontsize=10,color="white",style="solid",shape="box"];11148 -> 11860[label="",style="solid", color="burlywood", weight=9]; 11860 -> 11167[label="",style="solid", color="burlywood", weight=3]; 11861[label="vyv652/Neg vyv6520",fontsize=10,color="white",style="solid",shape="box"];11148 -> 11861[label="",style="solid", color="burlywood", weight=9]; 11861 -> 11168[label="",style="solid", color="burlywood", weight=3]; 11149[label="primRemInt (Neg vyv6530) vyv652",fontsize=16,color="burlywood",shape="box"];11862[label="vyv652/Pos vyv6520",fontsize=10,color="white",style="solid",shape="box"];11149 -> 11862[label="",style="solid", color="burlywood", weight=9]; 11862 -> 11169[label="",style="solid", color="burlywood", weight=3]; 11863[label="vyv652/Neg vyv6520",fontsize=10,color="white",style="solid",shape="box"];11149 -> 11863[label="",style="solid", color="burlywood", weight=9]; 11863 -> 11170[label="",style="solid", color="burlywood", weight=3]; 11135[label="absReal1 (Integer vyv6310) (not (primCmpInt vyv6310 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11864[label="vyv6310/Pos vyv63100",fontsize=10,color="white",style="solid",shape="box"];11135 -> 11864[label="",style="solid", color="burlywood", weight=9]; 11864 -> 11150[label="",style="solid", color="burlywood", weight=3]; 11865[label="vyv6310/Neg vyv63100",fontsize=10,color="white",style="solid",shape="box"];11135 -> 11865[label="",style="solid", color="burlywood", weight=9]; 11865 -> 11151[label="",style="solid", color="burlywood", weight=3]; 11136[label="Integer vyv6570 `rem` vyv656",fontsize=16,color="burlywood",shape="box"];11866[label="vyv656/Integer vyv6560",fontsize=10,color="white",style="solid",shape="box"];11136 -> 11866[label="",style="solid", color="burlywood", weight=9]; 11866 -> 11152[label="",style="solid", color="burlywood", weight=3]; 11137 -> 11052[label="",style="dashed", color="red", weight=0]; 11137[label="gcd0Gcd'0 vyv656 (vyv657 `rem` vyv656)",fontsize=16,color="magenta"];11137 -> 11153[label="",style="dashed", color="magenta", weight=3]; 11137 -> 11154[label="",style="dashed", color="magenta", weight=3]; 11138[label="vyv656",fontsize=16,color="green",shape="box"];11139[label="absReal1 (Pos vyv6340) (not (primCmpInt (Pos vyv6340) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11867[label="vyv6340/Succ vyv63400",fontsize=10,color="white",style="solid",shape="box"];11139 -> 11867[label="",style="solid", color="burlywood", weight=9]; 11867 -> 11155[label="",style="solid", color="burlywood", weight=3]; 11868[label="vyv6340/Zero",fontsize=10,color="white",style="solid",shape="box"];11139 -> 11868[label="",style="solid", color="burlywood", weight=9]; 11868 -> 11156[label="",style="solid", color="burlywood", weight=3]; 11140[label="absReal1 (Neg vyv6340) (not (primCmpInt (Neg vyv6340) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];11869[label="vyv6340/Succ vyv63400",fontsize=10,color="white",style="solid",shape="box"];11140 -> 11869[label="",style="solid", color="burlywood", weight=9]; 11869 -> 11157[label="",style="solid", color="burlywood", weight=3]; 11870[label="vyv6340/Zero",fontsize=10,color="white",style="solid",shape="box"];11140 -> 11870[label="",style="solid", color="burlywood", weight=9]; 11870 -> 11158[label="",style="solid", color="burlywood", weight=3]; 11167[label="primRemInt (Pos vyv6530) (Pos vyv6520)",fontsize=16,color="burlywood",shape="box"];11871[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11167 -> 11871[label="",style="solid", color="burlywood", weight=9]; 11871 -> 11189[label="",style="solid", color="burlywood", weight=3]; 11872[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11167 -> 11872[label="",style="solid", color="burlywood", weight=9]; 11872 -> 11190[label="",style="solid", color="burlywood", weight=3]; 11168[label="primRemInt (Pos vyv6530) (Neg vyv6520)",fontsize=16,color="burlywood",shape="box"];11873[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11168 -> 11873[label="",style="solid", color="burlywood", weight=9]; 11873 -> 11191[label="",style="solid", color="burlywood", weight=3]; 11874[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11168 -> 11874[label="",style="solid", color="burlywood", weight=9]; 11874 -> 11192[label="",style="solid", color="burlywood", weight=3]; 11169[label="primRemInt (Neg vyv6530) (Pos vyv6520)",fontsize=16,color="burlywood",shape="box"];11875[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11169 -> 11875[label="",style="solid", color="burlywood", weight=9]; 11875 -> 11193[label="",style="solid", color="burlywood", weight=3]; 11876[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11169 -> 11876[label="",style="solid", color="burlywood", weight=9]; 11876 -> 11194[label="",style="solid", color="burlywood", weight=3]; 11170[label="primRemInt (Neg vyv6530) (Neg vyv6520)",fontsize=16,color="burlywood",shape="box"];11877[label="vyv6520/Succ vyv65200",fontsize=10,color="white",style="solid",shape="box"];11170 -> 11877[label="",style="solid", color="burlywood", weight=9]; 11877 -> 11195[label="",style="solid", color="burlywood", weight=3]; 11878[label="vyv6520/Zero",fontsize=10,color="white",style="solid",shape="box"];11170 -> 11878[label="",style="solid", color="burlywood", weight=9]; 11878 -> 11196[label="",style="solid", color="burlywood", weight=3]; 11150[label="absReal1 (Integer (Pos vyv63100)) (not (primCmpInt (Pos vyv63100) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11879[label="vyv63100/Succ vyv631000",fontsize=10,color="white",style="solid",shape="box"];11150 -> 11879[label="",style="solid", color="burlywood", weight=9]; 11879 -> 11171[label="",style="solid", color="burlywood", weight=3]; 11880[label="vyv63100/Zero",fontsize=10,color="white",style="solid",shape="box"];11150 -> 11880[label="",style="solid", color="burlywood", weight=9]; 11880 -> 11172[label="",style="solid", color="burlywood", weight=3]; 11151[label="absReal1 (Integer (Neg vyv63100)) (not (primCmpInt (Neg vyv63100) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];11881[label="vyv63100/Succ vyv631000",fontsize=10,color="white",style="solid",shape="box"];11151 -> 11881[label="",style="solid", color="burlywood", weight=9]; 11881 -> 11173[label="",style="solid", color="burlywood", weight=3]; 11882[label="vyv63100/Zero",fontsize=10,color="white",style="solid",shape="box"];11151 -> 11882[label="",style="solid", color="burlywood", weight=9]; 11882 -> 11174[label="",style="solid", color="burlywood", weight=3]; 11152[label="Integer vyv6570 `rem` Integer vyv6560",fontsize=16,color="black",shape="box"];11152 -> 11175[label="",style="solid", color="black", weight=3]; 11153[label="vyv656",fontsize=16,color="green",shape="box"];11154 -> 11122[label="",style="dashed", color="red", weight=0]; 11154[label="vyv657 `rem` vyv656",fontsize=16,color="magenta"];11155[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpInt (Pos (Succ vyv63400)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11155 -> 11176[label="",style="solid", color="black", weight=3]; 11156[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11156 -> 11177[label="",style="solid", color="black", weight=3]; 11157[label="absReal1 (Neg (Succ vyv63400)) (not (primCmpInt (Neg (Succ vyv63400)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11157 -> 11178[label="",style="solid", color="black", weight=3]; 11158[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];11158 -> 11179[label="",style="solid", color="black", weight=3]; 11189[label="primRemInt (Pos vyv6530) (Pos (Succ vyv65200))",fontsize=16,color="black",shape="box"];11189 -> 11213[label="",style="solid", color="black", weight=3]; 11190[label="primRemInt (Pos vyv6530) (Pos Zero)",fontsize=16,color="black",shape="box"];11190 -> 11214[label="",style="solid", color="black", weight=3]; 11191[label="primRemInt (Pos vyv6530) (Neg (Succ vyv65200))",fontsize=16,color="black",shape="box"];11191 -> 11215[label="",style="solid", color="black", weight=3]; 11192[label="primRemInt (Pos vyv6530) (Neg Zero)",fontsize=16,color="black",shape="box"];11192 -> 11216[label="",style="solid", color="black", weight=3]; 11193[label="primRemInt (Neg vyv6530) (Pos (Succ vyv65200))",fontsize=16,color="black",shape="box"];11193 -> 11217[label="",style="solid", color="black", weight=3]; 11194[label="primRemInt (Neg vyv6530) (Pos Zero)",fontsize=16,color="black",shape="box"];11194 -> 11218[label="",style="solid", color="black", weight=3]; 11195[label="primRemInt (Neg vyv6530) (Neg (Succ vyv65200))",fontsize=16,color="black",shape="box"];11195 -> 11219[label="",style="solid", color="black", weight=3]; 11196[label="primRemInt (Neg vyv6530) (Neg Zero)",fontsize=16,color="black",shape="box"];11196 -> 11220[label="",style="solid", color="black", weight=3]; 11171[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (primCmpInt (Pos (Succ vyv631000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11171 -> 11197[label="",style="solid", color="black", weight=3]; 11172[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11172 -> 11198[label="",style="solid", color="black", weight=3]; 11173[label="absReal1 (Integer (Neg (Succ vyv631000))) (not (primCmpInt (Neg (Succ vyv631000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11173 -> 11199[label="",style="solid", color="black", weight=3]; 11174[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11174 -> 11200[label="",style="solid", color="black", weight=3]; 11175[label="Integer (primRemInt vyv6570 vyv6560)",fontsize=16,color="green",shape="box"];11175 -> 11201[label="",style="dashed", color="green", weight=3]; 11176[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpInt (Pos (Succ vyv63400)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11176 -> 11202[label="",style="solid", color="black", weight=3]; 11177[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11177 -> 11203[label="",style="solid", color="black", weight=3]; 11178[label="absReal1 (Neg (Succ vyv63400)) (not (primCmpInt (Neg (Succ vyv63400)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11178 -> 11204[label="",style="solid", color="black", weight=3]; 11179[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];11179 -> 11205[label="",style="solid", color="black", weight=3]; 11213[label="Pos (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11213 -> 11238[label="",style="dashed", color="green", weight=3]; 11214 -> 65[label="",style="dashed", color="red", weight=0]; 11214[label="error []",fontsize=16,color="magenta"];11215[label="Pos (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11215 -> 11239[label="",style="dashed", color="green", weight=3]; 11216 -> 65[label="",style="dashed", color="red", weight=0]; 11216[label="error []",fontsize=16,color="magenta"];11217[label="Neg (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11217 -> 11240[label="",style="dashed", color="green", weight=3]; 11218 -> 65[label="",style="dashed", color="red", weight=0]; 11218[label="error []",fontsize=16,color="magenta"];11219[label="Neg (primModNatS vyv6530 (Succ vyv65200))",fontsize=16,color="green",shape="box"];11219 -> 11241[label="",style="dashed", color="green", weight=3]; 11220 -> 65[label="",style="dashed", color="red", weight=0]; 11220[label="error []",fontsize=16,color="magenta"];11197[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (primCmpNat (Succ vyv631000) Zero == LT))",fontsize=16,color="black",shape="box"];11197 -> 11221[label="",style="solid", color="black", weight=3]; 11198[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11198 -> 11222[label="",style="solid", color="black", weight=3]; 11199[label="absReal1 (Integer (Neg (Succ vyv631000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];11199 -> 11223[label="",style="solid", color="black", weight=3]; 11200[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11200 -> 11224[label="",style="solid", color="black", weight=3]; 11201 -> 11134[label="",style="dashed", color="red", weight=0]; 11201[label="primRemInt vyv6570 vyv6560",fontsize=16,color="magenta"];11201 -> 11225[label="",style="dashed", color="magenta", weight=3]; 11201 -> 11226[label="",style="dashed", color="magenta", weight=3]; 11202[label="absReal1 (Pos (Succ vyv63400)) (not (primCmpNat (Succ vyv63400) Zero == LT))",fontsize=16,color="black",shape="box"];11202 -> 11227[label="",style="solid", color="black", weight=3]; 11203[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11203 -> 11228[label="",style="solid", color="black", weight=3]; 11204[label="absReal1 (Neg (Succ vyv63400)) (not (LT == LT))",fontsize=16,color="black",shape="box"];11204 -> 11229[label="",style="solid", color="black", weight=3]; 11205[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];11205 -> 11230[label="",style="solid", color="black", weight=3]; 11238[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="burlywood",shape="triangle"];11883[label="vyv6530/Succ vyv65300",fontsize=10,color="white",style="solid",shape="box"];11238 -> 11883[label="",style="solid", color="burlywood", weight=9]; 11883 -> 11258[label="",style="solid", color="burlywood", weight=3]; 11884[label="vyv6530/Zero",fontsize=10,color="white",style="solid",shape="box"];11238 -> 11884[label="",style="solid", color="burlywood", weight=9]; 11884 -> 11259[label="",style="solid", color="burlywood", weight=3]; 11239 -> 11238[label="",style="dashed", color="red", weight=0]; 11239[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11239 -> 11260[label="",style="dashed", color="magenta", weight=3]; 11240 -> 11238[label="",style="dashed", color="red", weight=0]; 11240[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11240 -> 11261[label="",style="dashed", color="magenta", weight=3]; 11241 -> 11238[label="",style="dashed", color="red", weight=0]; 11241[label="primModNatS vyv6530 (Succ vyv65200)",fontsize=16,color="magenta"];11241 -> 11262[label="",style="dashed", color="magenta", weight=3]; 11241 -> 11263[label="",style="dashed", color="magenta", weight=3]; 11221[label="absReal1 (Integer (Pos (Succ vyv631000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];11221 -> 11242[label="",style="solid", color="black", weight=3]; 11222[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];11222 -> 11243[label="",style="solid", color="black", weight=3]; 11223[label="absReal1 (Integer (Neg (Succ vyv631000))) (not True)",fontsize=16,color="black",shape="box"];11223 -> 11244[label="",style="solid", color="black", weight=3]; 11224[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];11224 -> 11245[label="",style="solid", color="black", weight=3]; 11225[label="vyv6560",fontsize=16,color="green",shape="box"];11226[label="vyv6570",fontsize=16,color="green",shape="box"];11227[label="absReal1 (Pos (Succ vyv63400)) (not (GT == LT))",fontsize=16,color="black",shape="box"];11227 -> 11246[label="",style="solid", color="black", weight=3]; 11228[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];11228 -> 11247[label="",style="solid", color="black", weight=3]; 11229[label="absReal1 (Neg (Succ vyv63400)) (not True)",fontsize=16,color="black",shape="box"];11229 -> 11248[label="",style="solid", color="black", weight=3]; 11230[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];11230 -> 11249[label="",style="solid", color="black", weight=3]; 11258[label="primModNatS (Succ vyv65300) (Succ vyv65200)",fontsize=16,color="black",shape="box"];11258 -> 11323[label="",style="solid", color="black", weight=3]; 11259[label="primModNatS Zero (Succ vyv65200)",fontsize=16,color="black",shape="box"];11259 -> 11324[label="",style="solid", color="black", weight=3]; 11260[label="vyv65200",fontsize=16,color="green",shape="box"];11261[label="vyv6530",fontsize=16,color="green",shape="box"];11262[label="vyv65200",fontsize=16,color="green",shape="box"];11263[label="vyv6530",fontsize=16,color="green",shape="box"];11242[label="absReal1 (Integer (Pos (Succ vyv631000))) (not False)",fontsize=16,color="black",shape="box"];11242 -> 11264[label="",style="solid", color="black", weight=3]; 11243[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];11243 -> 11265[label="",style="solid", color="black", weight=3]; 11244[label="absReal1 (Integer (Neg (Succ vyv631000))) False",fontsize=16,color="black",shape="box"];11244 -> 11266[label="",style="solid", color="black", weight=3]; 11245[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];11245 -> 11267[label="",style="solid", color="black", weight=3]; 11246[label="absReal1 (Pos (Succ vyv63400)) (not False)",fontsize=16,color="black",shape="box"];11246 -> 11268[label="",style="solid", color="black", weight=3]; 11247[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];11247 -> 11269[label="",style="solid", color="black", weight=3]; 11248[label="absReal1 (Neg (Succ vyv63400)) False",fontsize=16,color="black",shape="box"];11248 -> 11270[label="",style="solid", color="black", weight=3]; 11249[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];11249 -> 11271[label="",style="solid", color="black", weight=3]; 11323[label="primModNatS0 vyv65300 vyv65200 (primGEqNatS vyv65300 vyv65200)",fontsize=16,color="burlywood",shape="box"];11885[label="vyv65300/Succ vyv653000",fontsize=10,color="white",style="solid",shape="box"];11323 -> 11885[label="",style="solid", color="burlywood", weight=9]; 11885 -> 11334[label="",style="solid", color="burlywood", weight=3]; 11886[label="vyv65300/Zero",fontsize=10,color="white",style="solid",shape="box"];11323 -> 11886[label="",style="solid", color="burlywood", weight=9]; 11886 -> 11335[label="",style="solid", color="burlywood", weight=3]; 11324[label="Zero",fontsize=16,color="green",shape="box"];11264[label="absReal1 (Integer (Pos (Succ vyv631000))) True",fontsize=16,color="black",shape="box"];11264 -> 11325[label="",style="solid", color="black", weight=3]; 11265[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];11266[label="absReal0 (Integer (Neg (Succ vyv631000))) otherwise",fontsize=16,color="black",shape="box"];11266 -> 11326[label="",style="solid", color="black", weight=3]; 11267[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];11268[label="absReal1 (Pos (Succ vyv63400)) True",fontsize=16,color="black",shape="box"];11268 -> 11327[label="",style="solid", color="black", weight=3]; 11269[label="Pos Zero",fontsize=16,color="green",shape="box"];11270[label="absReal0 (Neg (Succ vyv63400)) otherwise",fontsize=16,color="black",shape="box"];11270 -> 11328[label="",style="solid", color="black", weight=3]; 11271[label="Neg Zero",fontsize=16,color="green",shape="box"];11334[label="primModNatS0 (Succ vyv653000) vyv65200 (primGEqNatS (Succ vyv653000) vyv65200)",fontsize=16,color="burlywood",shape="box"];11887[label="vyv65200/Succ vyv652000",fontsize=10,color="white",style="solid",shape="box"];11334 -> 11887[label="",style="solid", color="burlywood", weight=9]; 11887 -> 11379[label="",style="solid", color="burlywood", weight=3]; 11888[label="vyv65200/Zero",fontsize=10,color="white",style="solid",shape="box"];11334 -> 11888[label="",style="solid", color="burlywood", weight=9]; 11888 -> 11380[label="",style="solid", color="burlywood", weight=3]; 11335[label="primModNatS0 Zero vyv65200 (primGEqNatS Zero vyv65200)",fontsize=16,color="burlywood",shape="box"];11889[label="vyv65200/Succ vyv652000",fontsize=10,color="white",style="solid",shape="box"];11335 -> 11889[label="",style="solid", color="burlywood", weight=9]; 11889 -> 11381[label="",style="solid", color="burlywood", weight=3]; 11890[label="vyv65200/Zero",fontsize=10,color="white",style="solid",shape="box"];11335 -> 11890[label="",style="solid", color="burlywood", weight=9]; 11890 -> 11382[label="",style="solid", color="burlywood", weight=3]; 11325[label="Integer (Pos (Succ vyv631000))",fontsize=16,color="green",shape="box"];11326[label="absReal0 (Integer (Neg (Succ vyv631000))) True",fontsize=16,color="black",shape="box"];11326 -> 11336[label="",style="solid", color="black", weight=3]; 11327[label="Pos (Succ vyv63400)",fontsize=16,color="green",shape="box"];11328[label="absReal0 (Neg (Succ vyv63400)) True",fontsize=16,color="black",shape="box"];11328 -> 11337[label="",style="solid", color="black", weight=3]; 11379[label="primModNatS0 (Succ vyv653000) (Succ vyv652000) (primGEqNatS (Succ vyv653000) (Succ vyv652000))",fontsize=16,color="black",shape="box"];11379 -> 11389[label="",style="solid", color="black", weight=3]; 11380[label="primModNatS0 (Succ vyv653000) Zero (primGEqNatS (Succ vyv653000) Zero)",fontsize=16,color="black",shape="box"];11380 -> 11390[label="",style="solid", color="black", weight=3]; 11381[label="primModNatS0 Zero (Succ vyv652000) (primGEqNatS Zero (Succ vyv652000))",fontsize=16,color="black",shape="box"];11381 -> 11391[label="",style="solid", color="black", weight=3]; 11382[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11382 -> 11392[label="",style="solid", color="black", weight=3]; 11336[label="`negate` Integer (Neg (Succ vyv631000))",fontsize=16,color="black",shape="box"];11336 -> 11383[label="",style="solid", color="black", weight=3]; 11337[label="`negate` Neg (Succ vyv63400)",fontsize=16,color="black",shape="box"];11337 -> 11384[label="",style="solid", color="black", weight=3]; 11389 -> 11575[label="",style="dashed", color="red", weight=0]; 11389[label="primModNatS0 (Succ vyv653000) (Succ vyv652000) (primGEqNatS vyv653000 vyv652000)",fontsize=16,color="magenta"];11389 -> 11576[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11577[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11578[label="",style="dashed", color="magenta", weight=3]; 11389 -> 11579[label="",style="dashed", color="magenta", weight=3]; 11390[label="primModNatS0 (Succ vyv653000) Zero True",fontsize=16,color="black",shape="box"];11390 -> 11401[label="",style="solid", color="black", weight=3]; 11391[label="primModNatS0 Zero (Succ vyv652000) False",fontsize=16,color="black",shape="box"];11391 -> 11402[label="",style="solid", color="black", weight=3]; 11392[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];11392 -> 11403[label="",style="solid", color="black", weight=3]; 11383[label="Integer (primNegInt (Neg (Succ vyv631000)))",fontsize=16,color="green",shape="box"];11383 -> 11393[label="",style="dashed", color="green", weight=3]; 11384[label="primNegInt (Neg (Succ vyv63400))",fontsize=16,color="black",shape="triangle"];11384 -> 11394[label="",style="solid", color="black", weight=3]; 11576[label="vyv652000",fontsize=16,color="green",shape="box"];11577[label="vyv653000",fontsize=16,color="green",shape="box"];11578[label="vyv653000",fontsize=16,color="green",shape="box"];11579[label="vyv652000",fontsize=16,color="green",shape="box"];11575[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS vyv698 vyv699)",fontsize=16,color="burlywood",shape="triangle"];11891[label="vyv698/Succ vyv6980",fontsize=10,color="white",style="solid",shape="box"];11575 -> 11891[label="",style="solid", color="burlywood", weight=9]; 11891 -> 11608[label="",style="solid", color="burlywood", weight=3]; 11892[label="vyv698/Zero",fontsize=10,color="white",style="solid",shape="box"];11575 -> 11892[label="",style="solid", color="burlywood", weight=9]; 11892 -> 11609[label="",style="solid", color="burlywood", weight=3]; 11401 -> 11238[label="",style="dashed", color="red", weight=0]; 11401[label="primModNatS (primMinusNatS (Succ vyv653000) Zero) (Succ Zero)",fontsize=16,color="magenta"];11401 -> 11413[label="",style="dashed", color="magenta", weight=3]; 11401 -> 11414[label="",style="dashed", color="magenta", weight=3]; 11402[label="Succ Zero",fontsize=16,color="green",shape="box"];11403 -> 11238[label="",style="dashed", color="red", weight=0]; 11403[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];11403 -> 11415[label="",style="dashed", color="magenta", weight=3]; 11403 -> 11416[label="",style="dashed", color="magenta", weight=3]; 11393 -> 11384[label="",style="dashed", color="red", weight=0]; 11393[label="primNegInt (Neg (Succ vyv631000))",fontsize=16,color="magenta"];11393 -> 11404[label="",style="dashed", color="magenta", weight=3]; 11394[label="Pos (Succ vyv63400)",fontsize=16,color="green",shape="box"];11608[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) vyv699)",fontsize=16,color="burlywood",shape="box"];11893[label="vyv699/Succ vyv6990",fontsize=10,color="white",style="solid",shape="box"];11608 -> 11893[label="",style="solid", color="burlywood", weight=9]; 11893 -> 11610[label="",style="solid", color="burlywood", weight=3]; 11894[label="vyv699/Zero",fontsize=10,color="white",style="solid",shape="box"];11608 -> 11894[label="",style="solid", color="burlywood", weight=9]; 11894 -> 11611[label="",style="solid", color="burlywood", weight=3]; 11609[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero vyv699)",fontsize=16,color="burlywood",shape="box"];11895[label="vyv699/Succ vyv6990",fontsize=10,color="white",style="solid",shape="box"];11609 -> 11895[label="",style="solid", color="burlywood", weight=9]; 11895 -> 11612[label="",style="solid", color="burlywood", weight=3]; 11896[label="vyv699/Zero",fontsize=10,color="white",style="solid",shape="box"];11609 -> 11896[label="",style="solid", color="burlywood", weight=9]; 11896 -> 11613[label="",style="solid", color="burlywood", weight=3]; 11413[label="Zero",fontsize=16,color="green",shape="box"];11414 -> 11059[label="",style="dashed", color="red", weight=0]; 11414[label="primMinusNatS (Succ vyv653000) Zero",fontsize=16,color="magenta"];11414 -> 11422[label="",style="dashed", color="magenta", weight=3]; 11415[label="Zero",fontsize=16,color="green",shape="box"];11416 -> 11061[label="",style="dashed", color="red", weight=0]; 11416[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];11404[label="vyv631000",fontsize=16,color="green",shape="box"];11610[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) (Succ vyv6990))",fontsize=16,color="black",shape="box"];11610 -> 11614[label="",style="solid", color="black", weight=3]; 11611[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS (Succ vyv6980) Zero)",fontsize=16,color="black",shape="box"];11611 -> 11615[label="",style="solid", color="black", weight=3]; 11612[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero (Succ vyv6990))",fontsize=16,color="black",shape="box"];11612 -> 11616[label="",style="solid", color="black", weight=3]; 11613[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];11613 -> 11617[label="",style="solid", color="black", weight=3]; 11422[label="vyv653000",fontsize=16,color="green",shape="box"];11614 -> 11575[label="",style="dashed", color="red", weight=0]; 11614[label="primModNatS0 (Succ vyv696) (Succ vyv697) (primGEqNatS vyv6980 vyv6990)",fontsize=16,color="magenta"];11614 -> 11618[label="",style="dashed", color="magenta", weight=3]; 11614 -> 11619[label="",style="dashed", color="magenta", weight=3]; 11615[label="primModNatS0 (Succ vyv696) (Succ vyv697) True",fontsize=16,color="black",shape="triangle"];11615 -> 11620[label="",style="solid", color="black", weight=3]; 11616[label="primModNatS0 (Succ vyv696) (Succ vyv697) False",fontsize=16,color="black",shape="box"];11616 -> 11621[label="",style="solid", color="black", weight=3]; 11617 -> 11615[label="",style="dashed", color="red", weight=0]; 11617[label="primModNatS0 (Succ vyv696) (Succ vyv697) True",fontsize=16,color="magenta"];11618[label="vyv6980",fontsize=16,color="green",shape="box"];11619[label="vyv6990",fontsize=16,color="green",shape="box"];11620 -> 11238[label="",style="dashed", color="red", weight=0]; 11620[label="primModNatS (primMinusNatS (Succ vyv696) (Succ vyv697)) (Succ (Succ vyv697))",fontsize=16,color="magenta"];11620 -> 11622[label="",style="dashed", color="magenta", weight=3]; 11620 -> 11623[label="",style="dashed", color="magenta", weight=3]; 11621[label="Succ (Succ vyv696)",fontsize=16,color="green",shape="box"];11622[label="Succ vyv697",fontsize=16,color="green",shape="box"];11623 -> 11430[label="",style="dashed", color="red", weight=0]; 11623[label="primMinusNatS (Succ vyv696) (Succ vyv697)",fontsize=16,color="magenta"];11623 -> 11624[label="",style="dashed", color="magenta", weight=3]; 11623 -> 11625[label="",style="dashed", color="magenta", weight=3]; 11624[label="Succ vyv697",fontsize=16,color="green",shape="box"];11625[label="Succ vyv696",fontsize=16,color="green",shape="box"];} ---------------------------------------- (883) TRUE